java.util.Collection
の実装クラスを、継承と実装の関係だけですがクラス図にまとめてみました。
The Java Tutorial
に載ってるクラスを、全てではありませんが実際にソースコードを見ながらextends
とimplements
の関係をまとめています。
Map
もCollection
と独立でしたが一緒にまとめました。
実装クラスはだいたいCloneable
やjava.io.Serializable
を実装していましたがここでは無視しています。
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