三浦ノート

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

java.util.Collectionの実装クラスのクラス図

java.util.Collectionの実装クラスを、継承と実装の関係だけですがクラス図にまとめてみました。

The Java Tutorial に載ってるクラスを、全てではありませんが実際にソースコードを見ながらextendsimplementsの関係をまとめています。

MapCollectionと独立でしたが一緒にまとめました。

実装クラスはだいたいCloneablejava.io.Serializableを実装していましたがここでは無視しています。

f:id:OviskoutaR:20200518134852p:plain

PlantUMLのソースコード

PlantUML クラス図

@startuml

interface List<E>
interface Collection<E>
interface Iterable<E>
interface Queue<E>
interface Deque<E>
interface Set<E>
interface SortedSet<E>
interface NavigableSet<E>
interface Map<K, V>
interface SortedMap<K,V>
interface NavigableMap<K,V>
abstract class AbstractList<E>
abstract AbstractCollection<E>
abstract class AbstractSequentialList<E>
abstract class AbstractSet<E>
abstract class AbstractMap<K,V>
abstract class AbstractQueue<E>
class ArrayList<E>
class LinkedList<E>
class Vector<E>
class HashSet<E>
class TreeSet<E>
class LinkedHashSet<E>
class TreeMap<K,V>
class HashMap<K,V>
class LinkedHashMap<K,V>
class ArrayDeque<E>
class PriorityQueue<E>

Iterable <|-- Collection
Collection <|-- List
Collection <|-- Queue
Collection <|-- Set
Collection <|.. AbstractCollection
AbstractCollection <|-- AbstractList
AbstractCollection <|-- AbstractSet
AbstractCollection <|-- AbstractQueue
AbstractCollection <|-- ArrayDeque
Queue <|-- Deque
Queue <|.. AbstractQueue
Deque <|.. LinkedList
Deque <|.. ArrayDeque
AbstractQueue <|-- PriorityQueue
List <|.. AbstractList
List <|.. ArrayList
List <|.. LinkedList
List <|.. Vector
Set <|-- SortedSet
Set <|.. AbstractSet
Set <|.. HashSet
Set <|.. LinkedHashSet
HashSet <|-- LinkedHashSet
SortedSet <|-- NavigableSet
NavigableSet <|.. TreeSet
AbstractSet <|-- HashSet
AbstractSet <|- TreeSet
AbstractList <|-- ArrayList
AbstractList <|-- Vector
AbstractList <|-- AbstractSequentialList
AbstractSequentialList <|-- LinkedList

Map <|-- SortedMap
Map <|.. AbstractMap
Map <|.. HashMap
Map <|.. LinkedHashMap
SortedMap <|-- NavigableMap
AbstractMap <|-- TreeMap
NavigableMap <|.. TreeMap
AbstractMap <|-- HashMap
HashMap <|-- LinkedHashMap

@enduml