总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合; 其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合;而ArrayList和 LinkedList 实现了List接口,HashSet实现了Set接口,这几个都比较经常使用; HashMap 和HashTable实现了Map接口,而且HashTable是线程安全的,可是HashMap性能更好;java
注意:全部集合(List、Set以及Map)都实现了Cloneable(原型模式)和Serializable(序列化)数组
java.util.Collection [I]安全
|—java.util.List [I]性能
|—java.util.ArrayList [C]spa
|—java.util.LinkedList [C]线程
|—java.util.Vector [C]对象
|—java.util.Stack[C]排序
|—java.util.Set [I]继承
|—java.util.HashSet [C]接口
|—java.util.SortedSet [I]
|—java.util.TreeSet [C]
java.util.Map [I]
|—java.util.SortedMap [I]
|—java.util.TreeMap [C]
|—java.util.Hashtable [C]
|—java.util.HashMap [C]
|—java.util.LinkedHashMap [C]
|—java.util.WeakHashMap [C]
Java集合类里最基本的接口有:
Collection:单列集合的根接口
List:元素有序 可重复
ArrayList:相似一个长度可变的数组 。适合查询,不适合增删
LinkedList:底层是双向循环链表。适合增删,不适合查询。
Set:元素无序,不可重复
HashSet:根据对象的哈希值肯定元素在集合中的位置
TreeSet: 以二叉树的方式存储元素,实现了对集合中的元素排序
Map:双列集合的根接口,用于存储具备键(key)、值(value)映射关系的元素。
HashMap:用于存储键值映射关系,不能出现重复的键key
TreeMap:用来存储键值映射关系,不能出现重复的键key,全部的键按照二叉树的方式排列