Collections Framework の概要の注釈
Collections Framework は以下の要素で構成されます。
コレクションインタフェース
- コレクションを操作する主要な手段
Collection
- オブジェクトのグループ。 コレクションの順序付けおよび重複する要素を含んでいるかどうかについては何も考慮しない
Set
- よく使用される、セットの抽象化。 要素の重複は許可されない。 順序付けはされていても、いなくてもよい。
Collection
インタフェースを拡張する
List
- 順序付けされたコレクション。 「シーケンス」とも呼ばれる。 一般に重複は許可される。 位置によるアクセスを許可する。
Collection
インタフェースを拡張する
Map
- キーから値へのマッピング。 各キーを 1 つの値へマッピングできる
SortedSet
- 自然順序 (
Comparable
インタフェースを参照) によって、または
SortedSet
のインスタンスの生成時に提供される
Comparator
オブジェクトによって、自動的にソートされる要素のセット。
Set
インタフェースを拡張する
SortedMap
- マッピングがキーにより自動的にソートされるマップ。 ソートは、キーの自然順序、または
SortedMap
のインスタンスの生成時に提供される Comparator により行われる。
Map
インタフェースを拡張する
汎用の実装
- コレクションインタフェースの主実装
HashSet
-
Set
インタフェースのハッシュテーブル実装。
Set
インタフェースの、もっとも用途の広い実装
TreeSet
-
SortedSet
インタフェースの赤 - 黒ツリー実装
ArrayList
-
List
インタフェースのサイズ変更可能な配列の実装 (本来、同期をとらない
Vector
)。 List インタフェースのもっとも用途の広い実装
LinkedList
-
List
インタフェースの、ダブルリンクリスト実装。 要素がリスト内で頻繁に挿入あるいは削除される場合には、
ArrayList
よりも高いパフォーマンスを発揮することがある。 キューおよび双方向キュー (待機解除) で有用
HashMap
-
Map
インタフェースのハッシュテーブル実装 (本来、
null
のキーおよび値をサポートする、同期をとらない
Hashtable
)。
Map
インタフェースのもっとも用途の広い実装
TreeMap
-
SortedMap
インタフェースの赤 - 黒ツリー実装
ラッパー実装
- ほかの実装と併用して機能を拡張するための実装。 アクセスは、静的ファクトリメソッドを介してだけ行う
Collections.unmodifiable インタフェース
- ユーザがあるコレクションを変更しようとすると、そのコレクションの変更できないビューを返し、
UnsupportedOperationException
をスローする
Collections.synchronized インタフェース
- 指定された (一般には同期をとらない) コレクションに基づく、同期化されたコレクションを返す。 基となるコレクションへのアクセスがすべて、返されたコレクションを通して行われる限り、スレッドの安全性は保証される
簡易実装
- コレクションインタフェースの高性能な「ミニ実装」
Arrays.asList
- 配列をリストとして表示可能にする
EMPTY_SET
、
EMPTY_LIST
、および
EMPTY_MAP
- 空のセットおよびリストを表す定数 (不変)
singleton
、
singletonList
、および
singletonMap
- 指定されたオブジェクト (またはキー値のマッピング) だけを含む、不変な「単独」セット、リスト、またはマップを返す
nCopies
- 指定されたオブジェクトの n 個のコピーからなる不変なリストを返す
レガシー実装
- 以前からあるコレクションクラスが改良されて、コレクションインタフェースを実装するようになった
Vector
- 「レガシーメソッド」を持つ
List
インタフェースの、同期化され、サイズ変更可能な配列実装
Hashtable
-
Map
インタフェースの同期化されたハッシュテーブル実装。 「レガシーメソッド」では、
null
キーまたは
null
値は許可されない
特殊目的の実装
WeakHashMap
- キーへの
弱参照
だけを格納する
Map
インタフェースの実装。 弱参照だけを格納することにより、キーが
WeakHashMap
の外部から参照されなくなると、キー値のペアをガベージコレクトすることができる。 このクラスを利用すると、弱参照をもっとも簡単に利用することができる。 キーがどのスレッドからもアクセスできなくなると、エントリの有用性がなくなる「レジストリ的」なデータ構造を実装する場合に役立つ
抽象実装
- カスタム実装を容易にする、コレクションインタフェースの部分実装
AbstractCollection
- セットでもリストでもない (「バッグ」やマルチセットのような) コレクションの骨格実装
AbstractSet
- セットの骨格実装
AbstractList
- ランダムアクセスデータの格納 (配列など) を基とするリストの骨格実装
AbstractSequentialList
- シーケンシャルアクセスデータの格納 (リンク設定されたリストなど) を基とするリストの骨格実装
AbstractMap
- マップの骨格実装
アルゴリズム
sort(List)
- マージソートアルゴリズムを使ったリストのソート。このアルゴリズムは、高品質なクイックソートと同程度の性能を持つ。クイックソートより優れている点として、O(n*log n) を保証するパフォーマンスと安定性がある (安定したソートは、等価な要素の並べ替えを行わない)
binarySearch(List, Object)
- バイナリサーチアルゴリズムを使ってソートされたリスト内の要素を検索する
reverse(List)
- リスト内の要素の並び順を逆転させる
shuffle(List)
- リスト内の要素の並び順をランダムに変更する
fill(List, Object)
- 指定された値でリスト内のすべての要素を上書きする
copy(List dest, List src)
- ソースリストをターゲットリストにコピーする
min(Collection)
- コレクション内の最小要素を返す
max(Collection)
- コレクション内の最大要素を返す
インフラストラクチャ
反復子
-
Enumeration
インタフェースに似ているが、より強力で、メソッド名が改良されている
Iterator
-
Enumeration
インタフェースの機能に加えて、巧みに定義された有用なセマンティクスによって、ユーザが、基になるコレクションから要素を削除できるようになる
ListIterator
- リストに対して使用する反復子。
Iterator
インタフェースの機能に加えて、双方向の繰り返し、要素の置換、要素の挿入およびインデックスの取得をサポートする
順序付け
Comparable
- これを実装するクラスに対し、自然順序付けの機能を提供する。 自然順序付けは、リストのソート、またソートされたセットやマップ内の順序の維持に使用される。 多くのクラスが、このインタフェースを実装するために改良された
Comparator
- 順序付けの関連を表し、リストのソート、またソートされたセットやマップ内の順序の維持に使用される。 ある型の自然順序付けをオーバーライドしたり、
Comparable
インタフェースを実装していない型のオブジェクトの順序付けを行うことができる
実行時例外
UnsupportedOperationException
- サポートしていないオペレーションの呼び出し時に、コレクションによりスローされる
ConcurrentModificationException
- 反復の進行中に、基になるコレクションに対して予期しない変更が行われた場合、反復子およびリスト反復子によりスローされる。 基になるリストに予期しない変更が行われた場合も、リストのサブリストビューによりスローされる
配列ユーティリティ
配列
- プリミティブ配列およびオブジェクト配列に対して、ソート、検索、比較、および埋め込みを行う静的メソッドを含む
Copyright ©
1995-99
Sun Microsystems, Inc.
All Rights Reserved.
コメントの送付先:
collections-comments@java.sun.com
Java ソフトウェア