collection4 List常用子类

来源:互联网 发布:jsp项目绑定域名 编辑:程序博客网 时间:2024/06/02 08:11
List:
|--Vector:内部是数组数据结构,是
同步的。增删,查询都很慢!
|--ArrayList:内部是
数组数据结构,是不同步的。替代了Vector。查询的速度快。

|--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。



ArrayList的出现 Vector就很少被用到

ArrayList 构造一个初始容量为十的空列表。 


LinkedList的表现形式:   小明、小红、小兰手拉手成为链表    

不带小红完了 小明直接拉小兰的手

小强想玩 小强就左手拉小明右手拉小兰 

ArrayList的表现形式 :   军训列队  报数1 2 3 4 5 6....

每个人都有对应的数字

突然2号请病假 之后的人数字得-1  

还都得往前移一个


所以ArrayList 查询快(报数)增删慢(牵一发动全身)     

LinkedList 增删快(拉手)  查询慢(编不下去了)



LinkedList:


addFirst();
addLast():
jdk1.6
offerFirst();
offetLast();


getFirst();.//获取但不移除,如果链表为空,抛出NoSuchElementException.
getLast();
jdk1.6
peekFirst();//获取但不移除,如果链表为空,返回null.
peekLast():

removeFirst();//获取并移除,如果链表为空,抛出NoSuchElementException.
removeLast();
jdk1.6
pollFirst();//获取并移除,如果链表为空,返回null.
pollLast();

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LinkedList l = new L.......;

l.addFirst("abc 1"); l.addFirst("abc 2"); l.addFirst("abc 3");

迭代器 结果为abc3  abc 2 abc1     原因要明白 关键词First

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

l.addFirst("abc 1");

l.addFirst("abc 1"); l.addFirst("abc 2");l.addFirst("abc 3");

while(!l.Empty())

syso(l.removeFirst());

结果 abc 1 abc 2abc 3        效果某些时候等同迭代器  原理removeFirst  removeLast获取并移除

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

原创粉丝点击