


ArrayList
- 基于数组方式实现,无容量限制
- 在插入元素时可能需要扩容;在删除元素时并不会减小数组的容量(如希望相应的缩小数组的容量,可以调用ArrayList的trimToSize()方法);在查找元素时要遍历数组,对于非null的元素采用equals的方式寻找
- 非线程安全
LinkedList
- 基于双向链表机制实现
- 在插入元素时,需创建一个新的Entry对象,并切换相应元素的前后元素的引用;在查找元素时,需遍历链表;在删除元素时,要遍历链表,找到要删除的元素,然后从链表上将此元素删除即可
- 非线程安全
Vector
- 基于Synchronized实现的线程安全的ArrayList,但在插入元素时容量扩充的机制和ArrayList不通,并可通过传入capacityIncrement来控制容量的扩充
- 线程安全
Stack
HashSet
TreeSet
HashMap
- 采用数组方式存储key、value构成的Entry对象,无容量限制
- 基于key hash寻找Entry对象存放到数组的位置,对于hash冲突采用链表的方式解决
- 在插入元素时可能要扩大数组的容量,在扩大容量时必须要重新计算hash,并赋值对象到新的数组中
- 非线程安全
TreeMap
相关文章:
猜你喜欢
-
2021-05-12
-
2022-01-20
-
2021-12-22
-
2021-09-28
-
2021-05-30
-
2021-10-06
相关资源
-
下载
2023-01-29
-
下载
2023-02-07
-
下载
2023-01-10