Collection
-list【有序,可重复】
-ArrayList: 随机访问比较快,线程不安全,可以通过Collections.synchronizedList(list), ArrayList每次对size增长 50% .
-Vector:线程安全,jdk1.1就有了,效率太差。
-LinkedList:基于链表,插入,删除快。 还实现了 Deque接口。
-set【无序,不可重复】
-HashSet:访问块,无序,不同步,可以添加N个null,但是元素值只有一个是null。元素是否相等通过equals方法。 --线程不安全
-LinkedHahSet:链表维护插入顺序。迭代访问较快。 --线程不安全
-TreeSet:是SortedSet接口的实现类,根据集合元素大小排序,基于红黑树,如果集合元素是对象,必须实现Comparable接口。--线程不安全
-EnumSet:最快,枚举集合类, 有序。 --线程不安全
-queue 队列
-PriorityQueue:按照元素大小排列,小的先出.
-Deque:双端队列。
Map
-HashMap 线程不安全, key不可重复,key允许一个为null,value可以多个。不保证顺序
-LinkedHashMap:双向链表维护key的顺序。
-Hashtable 线程安全,不允许null作为key和value。不保证顺序
-Properties,读写文件
-TreeMap 实现 SortedMap接口 红黑树结构,保证k-v处于有序状态(自动排列),所有的key必须实现Comparable接口。判断两个key是否相等,通过compareTo()方法。
-WeakHashMap:key都是弱引用。如果key没有被其他强引用引用,则可能会被垃圾回收。
-IdentityHashMap 与HashMap类似,但是key使用==判定的,identityHashMap.put("2", "2"); identityHashMap.put("2", "3"); 则key=“2”对应的value=“3”
-EnumMap,所有的key必须是单个枚举类的枚举值