以下笔记摘自那些年的事儿的Java-Collections系列(十分感谢),附带有少量个人总结。
一、概览
Collections接口继承树:
Map接口继承树:
二、Collections&Maps接口与实现类的具体介绍
Collections可参考:https://www.cnblogs.com/nayitian/p/3266090.html
Maps可参考:http://www.cnblogs.com/nayitian/p/3267110.html
注:
1. 线性安全的实现类有:Vector、Stack、Hashtable。
2. ArrayList、ArrayQueue、Vector是以数组实现的;LinkedList是以链表实现的;TreeMap和TreeSet是使用红黑树来实现的。
3. Hashtable不允许key为null,也不允许value为null;TreeMap与EnumMap不允许key为null;HashMap及其子类LinkedHashMap,IdentityHashMap允许key为null。
4. Map接口不存在contains方法,但是有containsKey方法和containsValue方法。
三、Collections&Maps的遍历(传统遍历、迭代器遍历、foreach遍历)
详见:http://www.cnblogs.com/nayitian/archive/2013/03/08/2950730.html
注:
1. HashSet不保证维护元素的次序(迭代顺序),如果要对集合元素进行排序需要使用TreeSet。
2. HashMap也不保证维护元素的次序(迭代顺序),如果想要使用key进行排序需要使用TreeMap。