数组、List、Set、Map

三个接口: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

猜你喜欢

转载自blog.csdn.net/ddhmbbklyk2018/article/details/81741405
今日推荐