JDK 11 阅读 - Collection

Overview

Collection 是根接口

基础接口✅


Comparable接口✅

  • 只有一个compareTo接口方法

Iterator接口✅

  • 有hasNext和next方法
  • 还有一个default的remove方法,但没有实现,只是抛出异常

1. Set 接口

无序、不能重复

主接口 ✅

方法如下: size / isEmpty / contains / iterator / toArray / add / remove / containsAll / addAll retainAll (保留这部分,其他del)/ removeAll(Collection) / clear / equals / hashCode spliterator (default 此处返回Spliterators.spliterator)/ of(返回无法修改的set)

子接口✅

EventSet❌

JAVA Debug Interface ,忽略

SortedSet

  • 扩展自Set
  • 声明按升序排序的集合🌟
  • 方法:comparator / subSet / headSet / tailSet / first / last / spliterator
  • 扩展自SortedSet
  • TreeSet实现了NavigableSet,间接实现了SortedSet
  • 提供了lower/floor/ceiling/pollFirst/pollLast/Higher/Lower/DescendingIterator 等导航以及返回满足条件的元素功能。

实现类

AbstractSet

ConcurrentHashMap.KeySetView

ConcurrentSkipListSet

CopyOnWriteArraySet

EnumSet🚧

HashSet✅

  • 扩展自AbstractSet

  • 实现了set,Cloneable,Serializable接口

  • 里面自带Hashmap实例,大部分操作是通过hashmap实现的

  • add等涉及的元素扩张没有涉及,都在hashmap对象里

  • HashSet从一个Collection 初始化HashMap,Loadfactor 0.75,初始化大小为Math.max((int) (c.size()/.75f) + 1, 16)

  • 初始化时可以指定initialCapacity以及初始化时,Loadfactor

JobStateReasons

LinkedHashSet

TreeSet


2. List 接口

有序、可重复

AbstractList

AbstractSequentialList

ArrayList

AttributeList

CopyOnWriteArrayList

LinkedList

RoleList

RoleUnresolvedList

Stack

Vector


3. Queue 接口

子接口

BlockingDeque

BlockingQueue

Deque

TransferQueue

AbstractQueue

ArrayBlockingQueue

ArrayDeque

ConcurrentLinkedDeque

ConcurrentLinkedQueue

DelayQueue

LinkedBlockingDeque

LinkedBlockingQueue

LinkedList

LinkedTransferQueue

PriorityBlockingQueue

PriorityQueue

SynchronousQueue


4. Map 接口

子接口

Bindings

ConcurrentMap<K,​V>

ConcurrentNavigableMap<K,​V>

SortedMap<K,​V>

AbstractMap

Attributes

AuthProvider

ConcurrentHashMap

ConcurrentSkipListMap

EnumMap

HashMap

Hashtable

Headers

IdentityHashMap

LinkedHashMap

PrinterStateReasons

Properties

Provider

RenderingHints

ScriptObjectMirror

SimpleBindings

TabularDataSupport

TreeMap

UIDefaults

WeakHashMap