Collection:一个独立元素的序列,List,Set都实现该接口。
List列表:按照插入的顺序保存元素,其元素可以重复。
分为ArrayList和LinkedList。ArrayList适合快速查找和在尾部的插入。LinkedList适合在任意位置的插入,不适合进行查找。
Set集合:其元素不可以重复(通过hashcode和equals函数保证)。
主要分为HashSet和TreeSet,HashSet的底层是通过Map中的HashMap实现的,TreeSet是通过Map中的TreeMap实现的,TreeSet的元素是有序的,HashSet的元素是无序的。
Map是一个映射接口,其中的每个元素都是一个key-value键值对,同样抽象类AbstractMap通过适配器模式实现了Map接口中的大部分函数,TreeMap、HashMap、WeakHashMap等实现类都通过继承AbstractMap来实现,另外,不常用的HashTable直接实现了Map接口,它和Vector都是JDK1.0就引入的集合类。
HashMap允许将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。
HashMap的方法不同步。
HashTable的方法是同步的,HashTable不允许有空值的存在。