List的实现类

集合的遍历

1、Collection集合:没有下标

A:Iterator迭代器来遍历

B:for-each,增强for循环

2、List集合:有下标

A:Iterator迭代器来遍历

B:for-each,增强for循环

C:普通for循环,结合get(index)-->E

D:ListIterator迭代器也能遍历。

ArrayList集合

ArrayList集合,底层实现:采用数组的结构实现的。(最大的特点:内存连续)。

也会叫做变长数组。

优点:遍历集合中的元素,效率很高

缺点:更改集合中的元素,效率相对低。

LinkedList集合

LinkedList集合:底层实现:采用双向链表的结构实现。

queue:队伍,队列,行列

deque:double -ended queue,双端队列

LinkedList实现类,区别于ArrayList,除了实现List接口,还实现了Deque接口。

LinkedList实现类:

实现的接口:

List接口----------------------------------->Collection

Deque(双端队列)接口----->Queue(队列)接口------>Collection

模拟栈的结构:后进先出(LIFO),栈顶元素,

push(),压栈,入栈,pop(),弹栈,出栈

模拟队列的结构:先进先出(FIFO),队头元素

offer(),poll()

栈的结构特点:

队列的结构特点:

对比ArrayList,LinkedList,Vector实现类

A:ArrayList,底层采用数组结构的实现的。(内存中连续空间)。jdk1.2

只实现了List接口,功能都是List接口中规定的。

优缺点:

优点:遍历访问元素,效率很高

缺点:插入或删除元素,效率相对低。

B:LinkedList,底层采用双向链表结构实现的。(元素在内存中不挨着,元素之间的指向)。jdk1.2

实现了List接口的同时,还实现了Deque接口,所以有这两个接口中的功能。

优缺点:

优点:插入或删除元素,效率很高。

缺点:遍历访问元素,效率相对低。

注意点:

如果一个集合,频繁的添加或删除元素,建议选择LinkedList。

如果一个集合,绝大多数的操作就是遍历查询,建议选择ArrayList。

如果要模拟栈,队列等结构,建议选择LinkedList。

C:Vector,是ArrayList的前身。也是数组的结构。古老的类。从jdk1.0的版本就有了。

线程安全,效率低,后来被ArrayList替代了。

ArrayList和LinkedList都是线程不安全的,效率高。Collections工具类,可以获取线程安全的集合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容