快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

云顶娱乐手机版yd111:JAVA提高教程(9)认识List列表之LinkedList



LinkedList供给了将链接列表用作客栈、行列步队或双端行列步队的措施,这里不再重复先容List的标准操作,只给出其独特措施的应用。

请留意其已经实现的接口

Serializable, Cloneable, Iterable, Collection, Deque, List, Queue

packagecollection.lession9;

importjava.util.Arrays;

importjava.util.Iterator;

importjava.util.LinkedList;

importjava.util.List;

/**

*老紫竹JAVA前进教程(6)-熟识List列表之LinkedList

*实现了双向行列步队的节制,包括头尾的操作

*可用于客栈和FIFO操作等。

*

*相关API请查看api.java2000.net/LinkedList

*

*@author老紫竹

*

*/

publicclassLession9{

p云顶娱乐手机版yd111ublicstaticvoidmain(String[]args){

//对付List的根基操作,这里不再重复

//请自行查看先容List的内容

//这里专注于LinkedList所引入的特点部分

//

LinkedListlist=newLinkedList();

list.add("1111");

list.add("2222");

list.add("3333");

showList(list);//[1111,2222,3333]

//在列表的最头部增添一个

list.addFirst("head");

showList(list);//[head,1111,2222,3333]

//测试反向的迭代器

//正常的迭代器应该是从第一个数据开始

//这个是从着末一个开始,这也是LinkedList的特征

Iteratorit=list.descendingIterator();

while(it.hasNext()){

System.out.print(it.next()+",");//3333,2222,1111,head,

}

System.out.println();

//获取列表的第一个数据,且继承保留这个数据

//内部都是getFirst,无任何差别

System.out.println(list.element());//head

System.out.println(list.getFirst());//head

//假如长度为0,会返回null,否则和getFirst相同

System.out.println(list.peek());//head

System.out.println(list.peekFirst());//head

//获取列表的着末一个数据,且继承保留这个数据

System.out.println(list.getLast());//3333

//假如长度为0,会返回null,否则和getLast相同

System.out.println(list.peekLast());//3333

//在列表末端增添一个数据

list.offer("tail");

showList(list);//[head,1111,2222,3333,tail]

//在列表最前面增添一个数据

//内部经由过程addFirst实现的

list.offerFirst("----");

showList(list);//[----,head,1111,2222,3333,tail]

//在云顶娱乐手机版yd111列表末端增添一个数据

//内部经由过程addLast实现的

list.offerLast("====");

showList(list);//[----,head,1111,2222,3333,tail,====]

//获取列表的第一个数据,并从删除这个数据

System.out.println(list.poll());//----

System.out.println(list.pollFirst());//head

//获取列表的着末一个数据,并从删除这个数据

System.out.println(list.pollLast());//====

//以客栈的形式存入一个数据

//将该元素插入此列表的开首

//内部经由过程addFirst实现

list.push("xyz");

showList(list);//[xyz,1111,2222,3333,tail]

//以客栈的形式弹出一个数据

//移除并返回第一个数据

//内部经由过程removeFirst实现

System.out.println(list.pop());//xyz

showList(list);//[1111,2222,3333,tail]

//删除并返回第一个数据

System.out.println(list.removeFirst());//1111

showList(list);//[2222,3333,tail]

//删除列表中第一次呈现的这个数据

//内部经由过程remove(Object)实现

System.out.println(list.removeFirstOccurrence("3333"));//true

showList(list);//[2222,tail]

//删除并返回着末一个数据

System.out.pr云顶娱乐手机版yd111intln(list.removeLast());//tail

showList(list);//[2222]

//删除列表中着末一次呈现的这个数据

System.out.println(list.removeLastOccurrenc云顶娱乐手机版yd111e("2222"));//true

showList(list);//[]

}

/**

*显示List里面的数据。

*

*@paramlist

*/

privatestaticvoidshowList(Listlist){

System.out.println(Arrays.toString(list.toArray()));

}

}

运行结果

[1111, 2222, 3333]

[head, 1111, 2222, 3333]

3333,2222,1111,head,

head

head

head

head

3333

3333

[head, 1111, 2222, 3333, tail]

[----, head, 1111, 2222, 3333, tail]

[----, head, 1111, 2222, 3333, tail, ====]

----

head

====

[xyz, 1111, 2222, 3333, tail]

xyz

[1111, 2222, 3333, tail]

1111

[2云顶娱乐手机版yd111222, 3333, tail]

true

[2222, tail]

tail

[2222]

true

[]

总结:

这个类具有很大年夜的机动性,也是常用的列表实现类之一。不多说了,总之必须掌握便是了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: