list && iterator
来源:互联网 发布:民航大数据发展状况 编辑:程序博客网 时间:2024/05/17 22:08
在List实现类中有3个主要的实现类:ArrayList ,Vector(向量,可变数组),LinkedList.其中Vector有一个Stack(栈)子类,这个子类仅仅在父类的基础上增加了5个子类,这五个方法就降一个向量扩展成了栈。本质上Stack就是一个Vector只是多了5个方法而已。
新增的5个方法有3个使用了synchronized修饰,这也就是说Stack是一个线程安全的类,这也是为了Stack和Vector保持一致,Vector也是一个线程安全的类。
主要区别
- Deque接口代表双端队列这种数据结构,既有队列的性质:FIFO也有了栈的性质:FILO.
- transient:java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。ArrayList使用了transient关键字。这就保证了系统序列化ArrayList对象的时候不会直接序列化。而是通过方法来序列号对象。从序列化角度来说ArrayList比Vector实现更加安全。
- Vector是ArrayList的线程安全版本。只是说vector的方法增加了synchronized修饰。
- Vector唯一的好处就是它的线程安全性。
如果用List集合而去避免使用Vector,而是考虑使用ArrayList。可以通过Collections.synchronizedList的方法可将一个普通ArrayList包装成一个线程安全的ArrayList
List是一种线性表,ArrayList是一种顺序存储的,而LinkedList是链式的。但是它不仅实现了List接口 也实现了Deque接口。也就是说LinkedList可以当成一个队列 双向链表 栈 都可以使用。
- ArrayList:保证底层封装的数组大小大于集合元素的数目,插入位置之后所有的元素都要移动,一旦删中间的一个元素就要把整体搬家。所以对于ArrayList来说,读取性能最好(几乎跟数组一样),但是插入和删除就不是很好了。而且有些浪费申请了一个数组空间。
- LinkedList:这个相当于是个双向链表,所以使用这个来插入和删除的效率极高。但是这个要搜索就麻烦了 必须一个个的搜索,直到找到那个元素为止。单单的只添加一个节点的性能特别好,但是要在指定索引处添加 就需要先找到再添加。但是这个搜索过程的系统开销并不小。
这两个List的总结: - ArrayList的性能优于LinkedList。绝大部分ArrayList的性能比较高,如果经常性的添加和删除元素 尤其是经常使用add(E e) 的方法向集合中添加元素才会考虑使用LinkedList。
0 0
- List Iterator
- list iterator
- list && iterator
- List Iterator for()
- List 和 Iterator
- android List,HashMap,Iterator
- s:iterator 遍历list
- Map、List、Iterator、Romdon
- 仿list的iterator
- list iterator not decrementable
- list iterator not incrementable
- android List,HashMap,Iterator
- List Iterator Not Incrementable
- android List,HashMap,Iterator
- list iterator not dereferencable
- android List,HashMap,Iterator
- 通过Iterator遍历List
- android List,HashMap,Iterator
- 数组指针解析
- 20150927
- OCP-V13-010
- java SE复习笔记49
- 测试用例
- list && iterator
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接---个人整理
- 青年歌手大奖赛_评委会打分
- Haxe文档之Introduction(介绍)
- java SE复习笔记50
- 曾经永远是曾经,影子永远是影子。
- AM335X / BBB Usb 配置设备 RNDIS
- 软工之设计和编码
- “钱三篇”后续之物价为什么上涨?