appendix> util> Collection | TOPUPPREVNEXT |
重複のないデータの集まりを扱うのが Set です。
各データをインデックス(番号)によって識別できるようにしたものが List です。
一般に要素の重複が許されます。
データの待ち行列をつくり、
データの投入や取り出しのインターフェースを提供するのが Queue です。
Map は キー(Set)と値(Collection)を対応付けます。
1字違いの java.util.Collections クラスが あります。コレクションを扱う static メソッドの集まりです。
Collection および Map 以下の9つのインターフェースは総称して Collections Framework と呼ばれます。
メソッド | 機能 |
---|---|
Iterator<T> iterator ( ) | 型 T の要素を順にアクセスするイテレータを返します。 J2SE 1.4 以前では <T> がかけませんから、イテレータの next() メソッドの値は Object クラスになります。 Iterator の例 |
つまり、Collection インターフェースを実装するクラスには Iterator を返す iterator メソッドがあり、 Iterator を使って全データを順にアクセスすることができる、あるいは逆に、 Collection インターフェースを実装する場合には iterator メソッドを用意しなければならない、ということになります。
オブジェクトを集め、追加、削除するためのインターフェースです。 集められた個々のオブジェクトを要素といいます。 要素どうしが equals になる(重複した要素)を許す実装も、許さない実装も可能です。 要素を順序付けする実装も、順序を保障しない実装もあります。 特定のクラスの要素を許さない実装も、特定のクラスの要素からなる実装も可能です。 要素の追加・削除をみとめない実装も可能です。
機能欄に [任意] とあるのは上記のようなサポートをする・しない、 サポートしていない機能を使った場合に例外を発生させる・させない、 を実装する際に選択できるという意味です。 [任意] に関連する主な例外には以下のものがあります。
メソッド欄の E は 型パラメータ です。 次のものを表しています。
E | コレクションの要素のクラス名 | |
? extends E | クラス E かその子クラス、またはインターフェース E を実装するクラス | |
? | 任意のクラス |
<T> は型変数の宣言とよばれ、 任意のクラス T について T[] toArray(T[] a) というインターフェースが提供されるという意味になります。 たとえば、 T を String とすると、次のような記述が説明の対象であり、 xxx が機能欄の 「このコレクション」 に該当します。
メソッド | 機能 |
---|---|
boolean add ( E e ) | このコレクションに、要素 e を追加します。[任意] |
boolean addAll (
Collection<? extends E> c) |
c の全要素をこのコレクションに追加します。
[任意] c には要素を E に限定したコレクション、 または要素を E の子クラスに限定したコレクションを指定できます。 |
void clear ( ) | このコレクションからすべての要素を削除します。[任意] |
boolean contains ( Object e ) | このコレクションに要素 e が含まれている場合に true。 |
boolean containsAll (
Collection<?> c) |
c の全要素がこのコレクションに含まれる場合 true。 |
boolean equals ( Object o ) | このコレクションと o が等しい場合に true。 |
int hashCode ( ) | コレクションのハッシュコード。 |
boolean isEmpty ( ) | このコレクションに要素が1つもない場合 true。 |
Iterator<E> iterator ( ) | このコレクションのイテレータ。 |
boolean remove ( Object e ) | このコレクションから要素 e を削除します。 [任意] |
boolean removeAll (
Collection<?> c) |
このコレクションから、c を削除します。 [任意] |
boolean retainAll (
Collection<?> c) |
このコレクションのうち、c に含まれるものだけを残します。 [任意] |
int size ( ) | このコレクションの要素数。 |
Object [ ] toArray ( ) | このコレクションのすべての要素を含む配列。 順序があるコレクションであればその順に設定されます。 |
<T> T [ ] toArray ( T [ ] a ) | このコレクションのすべての要素を含む配列を aに設定します。 このコレクションの要素は T クラスであることが判っています。 a の長さががこのコレクションの要素より多ければ、 あまった部分には null がつめられます。 少なければ、あらたに T 型の配列が生成されます。 |
通常は、先入れ先出し(FIFO)ですが、後入れ先出し(LIFO)や優先度付待ち行列を実装することも可能です。 Stack クラスは Vector クラス(List インターフェースを実装)を継承しています。
Collection インターフェースで実装されるメソッドの他に、以下の5つのメソッドを実装します。
メソッド | 機能 |
---|---|
E element ( ) | キューの先頭要素。 キューが空の場合は、NoSuchElementException がスローされます。 |
E peek ( ) | キューの先頭要素。キューが空の場合は null。 |
E remove ( ) | キューの先頭要素。先頭要素は削除されます。 キューが空の場合は、NoSuchElementException がスローされます。 |
E poll ( ) | キューの先頭要素。先頭要素は削除されます。 キューが空の場合は null。 |
boolean offer ( E e ) | e を このキューに挿入。 挿入できれば true 、できなければ false 。 |
メソッド | 機能 |
---|---|
boolean add ( E e ) | このリストの最後に要素 e を追加します。[任意] |
boolean add ( int ind, E e ) | リストの ind 番目の要素として
e を追加します。[任意] 先頭は 0 番目。 |
boolean addAll (
int ind,
Collection<? extends E> c) |
c の全要素を(イテレータで獲得する順に) このリストの後に追加します。 [任意] |
boolean addAll (
Collection<? extends E> c)
|
このリストの ind 番目以降に c の全要素を追加します。 [任意] |
void clear ( ) | このリストからすべての要素を削除します。[任意] |
boolean contains ( Object e ) | このリストに要素 e が含まれている場合に true。 |
boolean containsAll (
Collection<?> c)
|
c の全要素がこのコレクションに含まれる場合 true。 |
boolean equals ( Object o ) | このリストと o が等しい場合に true。 |
E get ( int ind ) | このリストの ind 番目の要素。 先頭は 0 。 |
int hashCode ( ) | このリストのハッシュコード。 |
int indexOf ( Object o ) | o がこのリストの何番目にあるかを返します。 複数ある場合は若い番号のものが返されます。 |
boolean isEmpty ( ) | このリストに要素が1つもない場合 true。 |
Iterator<E> iterator ( ) | このリストのイテレータ。 |
int lastIndexOf ( Object o ) | o がこのリストの何番目にあるかを返します。 複数ある場合は番号の最も大きいものが返されます。 |
ListIterator<E> listIterator ( ) | このリストのイテレータを返します。 |
ListIterator<E> listIterator ( int ind ) | このリストの ind から始まるイテレータを返します。 |
E remove ( int ind ) | このリストの ind 番目の要素を削除し、 それ以降を前につめます。 削除した要素が値として返されます。 [任意] |
boolean remove ( Object e ) | このリストに含まれる最初の e を削除します。
[任意] 削除できた場合 true 、 削除できなかった場合 false 。 |
boolean removeAll (
Collection<?> c)
|
このリストから c の要素をを削除します。
[任意] ひとつでも削除できれば true 。 |
boolean retainAll (
Collection<?> c)
|
このリストのうち、c
に含まれるものだけを残します。
[任意] リストが変更された場合 ture 。 |
E set ( int ind, E e ) | このリストの ind 番目を e に置き換え、もとの値を返します。 |
int size ( ) | このリストの要素数。 |
List<E> subList (
int start , int end )
|
このリストの start (これを含む)から end (これを含まない)までの部分。 新しいリストが作られるのではなく、 もとのリストのこの部分を参照するビューが返されます。 この部分についてコレクションやリストでサポートしている全てのメソッドが使えます。 |
Object [ ] toArray ( ) | このリストのすべての要素をその順に含む配列。 |
<T> T [ ] toArray ( T [ ] a ) | このリストのすべての要素をその順に含む配列を aに設定します。 リストの要素は T クラスであることが判っています。 a の長さががこのコレクションの要素より多ければ、 あまった部分には null がつめられます。 少なければ、あらたに T 型の配列が生成されます。 |
メソッド | 機能 |
---|---|
boolean add ( E e ) | このセットに要素 e がない場合に追加します。[任意] 追加できた場合 true 。 |
boolean addAll (
Collection<? extends E> c) |
c の全要素をこのセットに追加します。
[任意] 重複した要素は追加されず和集合が作られます。 このセットが変更された場合 true 。 |
void clear ( ) | このセットからすべての要素を削除します。[任意] |
boolean contains ( Object e ) | このセットに要素 e が含まれている場合に true。 |
boolean containsAll (
Collection<?> c) |
c の全要素がこのセットに含まれる場合 true。 |
boolean equals ( Object o ) | このリストと o が等しい場合に true。 |
int hashCode ( ) | このセットのハッシュコード。 |
boolean isEmpty ( ) | このセットに要素が1つもない場合 true。 |
Iterator<E> iterator ( ) | このセットのイテレータ。 |
boolean remove ( Object e ) | このコレクションから要素 e を削除します。
[任意] 削除できた場合 true 、 要素がなかった場合 false 。 |
boolean removeAll (
Collection<?> c) |
c を削除します。
[任意] ひとつでも削除できた場合は true 。 |
boolean retainAll (
Collection<?> c) |
このセットのうち、c
に含まれるものだけを残します。
[任意] 2つのセットの共通部分になります。セットが変更された場合 true 。 |
int size ( ) | このセットの要素数。 |
Object [ ] toArray ( ) | このコレクションのすべての要素を含む配列。 |
<T> T [ ] toArray ( T [ ] a ) | このコレクションのすべての要素を含む配列。 |