Java集合源码分析
山川尽美
java路上的探路者
展开
-
List源码解析之ArrayList源码分析
ArrayList简介ArrayList是基于数组实现的, 是一个动态扩展的数组,容量可自动增长。 ArrayList是非线程安全的,只能在单线程环境下使用,多线程环境考虑使用Collections.synchronizedList(List list)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。 ArrayLi原创 2017-11-24 14:53:30 · 235 阅读 · 0 评论 -
List源码解析之Vector 源码分析
Vector简介和ArrayList一样,Vector也是基于数组实现的,是动态数组,容量可自动增长。 与ArrayList不同的是,它有好多方法都加入了synchronized修饰,所以是线程安全的,可用于多线程环境。 Vector没有实现Serializable接口,不支持序列化,实现了Cloneable接口,能被克隆,实现了RandomAccess接口,支持快速随机访问。属性和构造函数原创 2017-11-24 21:06:42 · 182 阅读 · 0 评论 -
List源码解析之LinkedList 源码分析
LinkedList简介实现了List和Deque接口,既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)(处理栈和队列问题,首选ArrayDeque,它的性能比LinkedList作栈和队列使用好很多)。 LinkedList是一种双向链表,通过first和last引用分别指向链表的第一个和最后一个元素。 LinkedList是非线程安全的,也就是说它原创 2017-11-26 17:23:17 · 175 阅读 · 0 评论 -
ArrayList、Vector和LinkedList的区别
实现方式 ArrayList,Vector 是基于数组的实现。 LinkedList 是基于链表的实现。 同步 ArrayList,LinkedList 不是线程安全的。 Vector 是线程安全的,实现方式是在方法中加 synchronized 进行限定。 性能消耗 ArrayList和Vector由于是基于数组实现,所以在指定位置插入和原创 2017-11-26 17:33:17 · 1150 阅读 · 0 评论