集合层次结构;
以Collection(value),Map(key-value)两个接口为根,逐步分支
面向对象,集合的定义是具有某种特定性质的具体的或抽象的对象汇总成的集体。
不带任何回忆jdk源码对集合进行建模:容量,元素增删改查,遍历,
再结合jdk源码的建模。发现
有控制容量方法:size(),isEmpty()
有控制元素的方法:Collection有add();remove();clear();Map有get();put();remove();clear();replace()比我想的多出一个contains()及Collection多出一个retainAll()
遍历:Collection有iterator();Map将key,entry转化为Collection进行遍历
另Collection多出,toArray(),hashcode(),equals() 其他方法不常见就不解释了
Collection又分为Set与List
Set:不允许重复元素的Collection,jdk中并没有说有序无序。比Collection拓展方法:of();copyOf()
List:是有序的Collection,允许重复元素。比Collection拓展方法:indexOf(),sort()
接下来就是实体类了
常用的一些集合,需要了解原理与区别:
Set:HashSet,TreeSet
List:ArrayList,linkedList,Vector,Stack
Map:HashMap,TreeMap,LinkedHashMap,HashTable,Properties
并发包java.util.concurrent中的:
Set:ConcurrentSkipListSet,CopyOnWriteArraySet
List:CopyOnWriteArrayList,
Map:ConcurrentHashMap,ConcurrentSkipListMap,