三大集合介绍

继承树:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
设计集合目的:
List 实现可以自动扩展的有序数组
set实现没有重复的无序数组
TreeSet,TreeList,TreeMap 实现自动排序的组数
Map实现键值对存储
各种集合的特点:
1.ArrayList:
可变数组、查询速度快、尾部增删改速度快、其他部位增删改速度慢、非同步、线程不安全
2.LinkedList
双向链表、查询速度慢、两端增删改速度快、非同步、线程不安全
3.HashMap
键值对存储、可以有一个键为null、多个值为null、hash数组的默认大小是16,而且一定是2的指数、非同步、线程不安全
4.HashTable
键值对存储、键值均不可为null、hash数组默认大小是11、增加的方式是 old*2+1、同步、线程安全
5.HashSet
元素的排列顺序有可能发生变化、集合元素可以是null,但只能放入一个null、非同步、线程不安全
6.TreeSet
存储值、不能有重复对象、集合元素处于排序状态,支持两种排序方式,自然排序和定制排序,其中自然排序为默认的排序方式、通过equals方法实现、定制排序通过CompareTo方法实现、非同步、线程不安全
7.TreeMap
存储键值对、可以有重复对象、其余和TreeSet一致、非同步、线程不安全
8.WeekHashMap
HashMap的增强版、弱引用、可以用来访问对象,但进行垃圾回收时弱引用并不会被考虑在内,仅有弱引用指向的对象仍然会被GC回收。
应用选择:
追求速度就选择非同步线程不安全的集合、追求线程安全就使用同步线程安全的集合。当然,非同步线程不安全的集合也可以通过增加同步锁的方式保证线程安全。

猜你喜欢

转载自blog.csdn.net/qq_42695926/article/details/83691534