1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| @startuml interface Map{} interface Cloneable{} interface Serializable{} abstract class AbstractMap<K,V>{} class LinkedHashMap<K,V>{} class HashMap<K,V>{ static final int DEFAULT_INITIAL_CAPACITY static final int MAXIMUM_CAPACITY static final float DEFAULT_LOAD_FACTOR static final int TREEIFY_THRESHOLD static final int UNTREEIFY_THRESHOLD static final int MIN_TREEIFY_CAPACITY final float loadFactor int threshold transient int size transient int modCount transient Node<K,V>[] table transient Set<Map.Entry<K,V>> entrySet } Map <|.. AbstractMap Serializable <|.. HashMap Cloneable <|.. HashMap AbstractMap <|-- HashMap HashMap <|-- LinkedHashMap Map <|.. LinkedHashMap
interface Map.Entry<K,V>{ K getKey() V getValue() }
class HashMap.Node<K,V> implements Map.Entry { final int hash final K key V value Node<K,V> next }
class LinkedHashMap.Entry<K,V> extends HashMap.Node{ Entry<K,V> before, after }
class HashMap.TreeNode<K,V> extends LinkedHashMap.Entry { TreeNode<K,V> parent TreeNode<K,V> left TreeNode<K,V> right TreeNode<K,V> prev boolean red } @enduml
|