一.分类
集合父类是Collection, 子类主要包括List, Set和Map三类。
二.List介绍
List: 主要是用来存储一系列相同类型的数据,包括ArrayList, LinkedList, Vector
ArrayList: 线程不安全,内部通过数组实现,访问和查找速度快,指定位置增加和删除数据慢。
LinkedList:线程不安全,内部通过链表实现,访问和查找速度慢,指定位置增加和删除数据快。
Vector: 跟ArrayList一样,内部通过数组实现。但他是属于线程安全,内部所有方法都通过synchronize加锁,速度相对ArrayList会慢
三.Set介绍
Set:一个不包含重复元素的集合,主要包括HashSet, TreeSet和EnumSet
HashSet: 线程不安全,内部通过Hashmap来实现,迭代时是无序的
TreeSet: 线程不安全,内部通过TreeMap来实现,迭代是有序的。
四.Map介绍
Map:主要用来存储键值对元素,包括HashMap和TreeMap
1. HashMap
线程不安全,根据Key的hash值计算相应的Entry位置,对于hash相同的key,将通过一个链表进行动态扩展。同时对于hashmap的迭代是无序的。
2. TreeMap
线程不安全,TreeMap会根据Key进行排序,迭代时有序的。支持两种排序方式。
a)自然排序,对于自然排序,Key必须实现了Comparable接口,同时实现c