Collection インターフェースを実装するクラス

【継承関係】

Collection インターフェースを実装しているクラスの継承関係は以下のとおりです。 淡灰色で表示したクラスは、汎用のクラスではないのでここでは解説しません。
 java.lang.Object
    └java.util.AbstractCollection<E>
         ├java.util.AbstractSet<E>
         │   ├java.util.concurrent.CopyOnWriteArraySet<E>
         │   ├java.util.EnumSet<E>
         │   ├java.util.HashSet<E>
         │   └java.util.TreeSet<E>
         ├java.util.AbstractList<E>
         │   ├java.util.AbstractSequentialList<E>
         │   │   └java.util.LinkedList<E>
         │   ├java.util.ArrayList<E>
         │   │   ├javax.management.AttributeList
         │   │   ├javax.management.relation.RoleList
         │   │   └javax.management.relation.RoleUnresolvedList
         │   └java.util.Vector<E>
         │        └java.util.Stack<E>
         └java.util.AbstractQueue<E>
              ├java.util.concurrent.ArrayBlockingQueue<E>
              ├java.util.concurrent.ConcurrentLinkedQueue<E>
              ├java.util.concurrent.DelayQueue<E>
              ├java.util.concurrent.LinkedBlockingQueue<E>
              ├java.util.concurrent.PriorityBlockingQueue<E>
              ├java.util.PriorityQueue<E>
              └java.util.concurrent.SynchronousQueue<E>
  

【実装の状況】

直接実装している関係をひろうと以下のようになっています。 これ以外はクラスの継承にによって Collection を実装しています。
Collection を実装
AbstractSet<E>   java.beans.beancontext.BeanContext
Set を実装
AbstractSet<E>   HashSet<E>   LinkedHashSet<E>
SortedSet を実装
TreeSet<E>
List を実装
AbstractList<E>   LinkedList<E>   ArrayList<E>   Vector<E>
Queue を実装
AbstractQueue<E>   LinkedList<E>   ConcurrentLinkedQueue<E>
BlockingQueue を実装
ArrayBlockingQueue<E>   DelayQueue<E>   LinkedBlockingQueue<E>   PriorityBlockingQueue<E>   SynchronousQueue<E>
RandamAccess
ArrayList<E>   CopyOnWriteArrayList<E>   Vector<E>

【Collection を実装しているおもなクラス】

collection-class.gif TreeSet ArrayList

RandomAccess インターフェースにはメソッドも定数もありませんが、 このインターフェースを実装しているクラスは、 各要素に対するアクセス時間が一定(言い替えると、 総アクセス時間がアクセスする要素数に比例する)ことを保障します。


更新日:2005-07-24