三个接口:Collection<E>、Map<K,V>、Comparable<T>
接口 Collection<E> 超级接口: Iterable<E> 已知子接口:List<E>、Set<E> 已知实现类:ArrayList、LinkedList、Vector、HashSet、LinkedHashSet、TreeSet |
List<E>实现类:ArrayList、LinkedList、Vector Set<E>实现类:HashSet、LinkedHashSet、TreeSet |
接口 Map<K,V> 已知子接口 ConcurrentMap<K,V>,SortedMap<K,V> 已知实现类 HashMap、Hashtable、LinkedHashMap、TreeMap |
HashMap、Hashtable、LinkedHashMap、TreeMap |
接口 Comparable<T> 已知子接口: 已知实现类: |
一对比
List<E> 序列 有序collection |
有序collection 1.允许重复元素。 2.有序容器。 保持每个元素的插入顺序,输出的顺序就是插入的顺序。 3.null元素 允许多个 4.实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适。 ListIterator |
Set<E> |
无重复collection 1.不允许重复元素 2. 无序容器,无法保证每个元素的存储顺序 [TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序。] 3. null 元素 只允许一个 4.Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器。 |
Map<K,V> |
1.Map是一个接口。Map不是collection的子接口或者实现类。 2.Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。 3. TreeMap 也通过 Comparator 或者 Comparable 维护了一个排序顺序。 4. K:一个 null 键, V:多个 null 值 5.Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用) |
接口 |
使用场景
list 索引访问 |
List 按照插入次序,有序存储 ArrayList 已知索引访问—更快 LinkedList 添加删除元素 |
set 唯一存储 |
Set 插入次序不一定,无序存储不一定 HashSet 无序 TreeSet 有序 是一个SortedSet,可用comparator\comparable排序 LinkedHashSet 有序存储 |
map 键值对存储 |
Map Hashtable HashMap TreeMap |
comparable |
compareTo |