Collection
无序集合,可重复
主要方法:
增加:add(),addAll()
删除:remove(),removeAll(),clear()
查找:contains(),containsAll(),size(),isEmpty()
迭代方式:
foreach迭代,iterator迭代。
List implements Collection
有序集合,可重复
主要方法:实现了collection所有方法,多了查询有序集合的方法。
查询:get(),indexOf()
迭代方式:
for,foreach迭代,iterator迭代。不能并发迭代,当并发迭代时需要使用Listiterator迭代器。
ArrayList implements List
有序集合、可重复、底层是数组、查询效率高、增删效率低。
主要方法:实现了List 所有方法
for,foreach迭代,iterator迭代。不能并发迭代,当并发迭代时需要使用Listiterator迭代器。
LinkedList implements List
有序集合、可重复、底层是链表、查询效率低,增删效率高。
主要方法:实现了List所有方法,多了首尾增删的方法
Last,First
for,foreach迭代,iterator迭代。不能并发迭代,当并发迭代时需要使用Listiterator迭代器。
Set implements Collection
无序集合、唯一、底层是map、查询效率高、增删效率高
主要方法:实现了Collection里的所有方法
foreach迭代,iterator迭代。不能并发迭代。
HashSet implements Collection
无序集合、唯一、底层是哈希表、查询效率最快、增删效率最高。
使用前存储对象的类需要重写getHash()方法、equals()方法,否则不能确保其唯一性。
主要方法:实现了Set里所有的方法
*当用HashSet存储对象时,需要重写getHash()方法,否则每new一个对象,Hash值必然不同。
*当用HashSet存储对象时,需要重写equals()方法,否则对象比的是地址,地址必然不同。
如果没有重写,则可以存储重复元素,且每个对象的哈希值算法的结论都不同,哈希存储就失去了效率。
foreach迭代,iterator迭代。不能并发迭代。
TreeSet
无序集合、唯一、底层是二叉树、查询增删效率低于HashSet,但是也很快。
使用前存储对象的类需要重写compareTo()方法或者使用外部比较器,否则不能确保其唯一性。
主要方法:实现了Set里所有方法,并且有更多比较方法
比较:floor(),higher(),celling(),lower()
*当用TreeSet存储对象时必须满足以下条件之一:
1、对象类implements comparable接口,并且重写compareTo()方法。
2、调用TreeSet类 implements compartor接口,并且重写compare()方法。
如果没有重写,则会报错,因为没有比较方法。
foreach迭代,iterator迭代。不能并发迭代。
Map
HashMap
无序集合、唯一、键值对存储,类似于HashSet(),与HashSet拥有类似的方法与特性。
foreach迭代,iterator迭代。不能并发迭代。
TreeMap
无序集合、唯一、键值对存储,类似于TreeSet(),与TreeSet拥有类似的方法与特性。
foreach迭代,iterator迭代。不能并发迭代。