java集合重点内容

1.Java集合大致可以分为四种体系:Set,List,Queue,Map。

2.Set代表 :无序不重复的集合

    List代表有序、重复的集合

    Map带有有映射关系的集合

    Queue代表一种队列集合实现。

3.Java集合主要由两个接口派生出来的。Cellction和Map。这两个是Java集合框架的根接口。

4.Collection集合体系的继承树。

-    Collection:

    -  Set:无序集合,元素不可重复。线程不安全。

- EnumSet:

- SortedSet:

    - TreeSet:根据Comparable接口中的CompareTo(Object obj)或者Comparator接口的compare(T o1,T o2)方法的结果来按次序存储元素。

    - HashSet:Set接口的典型实现。根据元素的hashCode的值决定元素的存储位置,元素不能重复。

        - LinkedHashSet:根据元素的hashCode的值决定元素的存储位置,但它同时使用链表维护元素的次序。元素不能重复。

- Queue:队列,通常是先进先出。

    - Deque:双端队列

        - ArrayDeque:基于数组实现的双端队列,可以当做栈使用。

    - PriorityQueue:按照元素大小重新排序的序列,不允许插入null。有自然排序和定制排序两种(Comparable接口或者Comparator接口)。

- List:有序集合,元素可以重复。集合中每个元素都有对应的顺序索引。

    - LinkedList(还实现了Deque接口):可以根据索引来访问集合中的元素,可以被当成双端队列来使用。

    - ArrayList:基于数组实现的List类。

    - Vector:基于数组实现的List类。

        - Stack:

5.Map体系的继承树:

-    Map

    - EnumMap:

    - IdentityHashMap:

    - HashMap:

        - LinkedHashMap:线程不安全,key,value允许为null

    - HashTable:

        - Properties:线程安全,key,value不允许为null。Propeties相当于一个key和value都是String类型的Map。

    - SortedMap:

        - TreeMap:

    - WeakHashMap:

6.Iterator接口:Iterator主要用于遍历Collection集合中的元素,Iterator对象也称为迭代器。注意:当使用Iterator对集合元素进行迭代时,Ierator并不是把集合元素本身给迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集合本身没有任何影响。

7.HashSet集合的特点:

    1.不能保证元素的排列顺序。

    2.HashSet不是同步的,如果多线程同时访问一个HashSet,假设有两个或者两个以上线程同时修改了HashSet集合时,则必须通过代码来保证其同步。

    3.集合元素可以是null。HashSet集合存入一个元素时,会根据该hashCode值来决定该对象在HashSet中的存储位置。如果有两个元素通过equals()方法比较返回true,但他们hashCode方法返回值不想等,HashSet将会把他们存储在不同的位置,依然可以添加成功。也就是说,HashSet集合判断两个元素相等的标准是两个对象通过equals()方法比较相等且两个对象的hashCode()方法返回值也相等。

8.ArrayList和LinkedList分别是基于数组的和基于基于链的线性表。由于数组以一块连续内存区来保存所有的数组元素,所以数组在随机访问时性能最好,所有的内部以数组作为底层实现的集合在随机访问时性能都比较好,而内部链表作为底层实现的集合,在执行插入、删除是拥有比较好的性能。

9.Set和Map的关系十分密切。Java源代码就是先实现了HashMap、TreeMap等集合,然后通过包装一个所有的value都为null的Map集合实现了Set集合类。

你可能感兴趣的:(java集合重点内容)