|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--java.util.Collections
このクラスは、コレクションに作用するか、コレクションを返す static メソッドだけで構成されます。このクラスには、指定されたコレクションを基にした新しいコレクションを返す「ラッパー」など、コレクションに対して作用するさまざまなアルゴリズムがあります。
このクラスにあるさまざまなアルゴリズムのドキュメントには、通常、「実装」の簡単な説明が含まれています。この説明は、「仕様」の一部ではなく「実装情報」と考えてください。実装者は、仕様に反しない限り、ほかのアルゴリズムを自由に使用できます。たとえば、sort が使用するアルゴリズムはマージソートである必要はありませんが、「固定 (stable)」のアルゴリズムでなければなりません。
Collection,
Set,
List,
Map| フィールドの概要 | |
static List |
EMPTY_LIST
空のリストです (不変)。 |
static Map |
EMPTY_MAP
空のマップです (不変)。 |
static Set |
EMPTY_SET
空のセットです (不変)。 |
| メソッドの概要 | |
static int |
binarySearch(List list,
Object key)
バイナリサーチアルゴリズムを使って、指定されたリストから指定されたオブジェクトを検索します。 |
static int |
binarySearch(List list,
Object key,
Comparator c)
バイナリサーチアルゴリズムを使って、指定されたリストから指定されたオブジェクトを検索します。 |
static void |
copy(List dest,
List src)
あるリストから別のリストにすべての要素をコピーします。 |
static Enumeration |
enumeration(Collection c)
指定されたコレクションの列挙を返します。 |
static void |
fill(List list,
Object o)
指定されたリストのすべての要素を指定された要素で置き換えます。 |
static Object |
max(Collection coll)
要素の「自然順序付け」に従って、指定されたコレクションの最大の要素を返します。 |
static Object |
max(Collection coll,
Comparator comp)
指定されたコンパレータが示す順序に従って、指定されたコレクションの最大の要素を返します。 |
static Object |
min(Collection coll)
要素の「自然順序付け」に従って、指定されたコレクションの最小の要素を返します。 |
static Object |
min(Collection coll,
Comparator comp)
指定されたコンパレータが示す順序に従って、指定されたコレクションの最小の要素を返します。 |
static List |
nCopies(int n,
Object o)
指定されたオブジェクトの n 個のコピーで構成される不変のリストを返します。 |
static void |
reverse(List l)
指定されたリストの要素の順序を逆にします。 |
static Comparator |
reverseOrder()
Comparable インタフェースを実装するオブジェクトのコレクションで「自然順序付け」の逆を義務付けるコンパレータを返します。 |
static void |
shuffle(List list)
デフォルトの乱数発生の元を使って、指定されたリストの順序を無作為に入れ替えます。 |
static void |
shuffle(List list,
Random rnd)
デフォルトの乱数発生の元を使って、指定されたリストの順序を無作為に入れ替えます。 |
static Set |
singleton(Object o)
指定されたオブジェクトだけを格納している不変のセットを返します。 |
static List |
singletonList(Object o)
指定されたオブジェクトだけを格納している不変のリストを返します。 |
static Map |
singletonMap(Object key,
Object value)
指定された値に指定されたオブジェクトだけをマッピングする不変のマップを返します。 |
static void |
sort(List list)
要素の「自然順序付け」に従って、指定されたリストを昇順にソートします。 |
static void |
sort(List list,
Comparator c)
指定されたコンパレータが示す順序に従って、指定されたリストをソートします。 |
static Collection |
synchronizedCollection(Collection c)
指定されたコレクションを基にする同期 (スレッドに対して安全な) コレクションを返します。 |
static List |
synchronizedList(List list)
指定されたリストを基にする同期 (スレッドに対して安全な) リストを返します。 |
static Map |
synchronizedMap(Map m)
指定されたマップを基にする同期 (スレッドに対して安全な) マップを返します。 |
static Set |
synchronizedSet(Set s)
指定されたセットを基にする同期 (スレッドに対して安全な) セットを返します。 |
static SortedMap |
synchronizedSortedMap(SortedMap m)
指定されたソートマップを基にする同期 (スレッドに対して安全な) ソートマップを返します。 |
static SortedSet |
synchronizedSortedSet(SortedSet s)
指定されたソートセットを基にする同期 (スレッドに対して安全な) ソートセットを返します。 |
static Collection |
unmodifiableCollection(Collection c)
指定されたコレクションの変更不可能なビューを返します。 |
static List |
unmodifiableList(List list)
指定されたリストの変更不可能なビューを返します。 |
static Map |
unmodifiableMap(Map m)
指定されたマップの変更不可能なビューを返します。 |
static Set |
unmodifiableSet(Set s)
指定されたセットの変更不可能なビューを返します。 |
static SortedMap |
unmodifiableSortedMap(SortedMap m)
指定されたソートマップの変更不可能なビューを返します。 |
static SortedSet |
unmodifiableSortedSet(SortedSet s)
指定されたソートセットの変更不可能なビューを返します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
public static final Set EMPTY_SET
public static final List EMPTY_LIST
public static final Map EMPTY_MAP
| メソッドの詳細 |
public static void sort(List list)
このソートは固定であることが保証されています。つまり、ソートを実行しても、同等の要素の順序は変わりません。
指定されたリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。
ソートアルゴリズムは修正マージソートです。このソートでは、下位のサブリストにおける最高レベルの要素が上位のサブリストにおける最低レベルの要素より小さい場合、マージは省略されます。このアルゴリズムは、常に n log(n) のパフォーマンスを提供し、ほとんどソートされたリストではパフォーマンスは一次式に近づく場合もあります。
この実装は、指定されたリストの配列へのダンプ、配列のソート、リストでの繰り返し処理を行うことにより、配列の対応する位置から各要素を再設定します。これは、リンクされたリストを適所にソートしようとした場合の n2 log(n) のパフォーマンスになるのを回避します。
list - ソートされるリストClassCastException - リストに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合Comparable
public static void sort(List list,
Comparator c)
このソートは固定であることが保証されています。つまり、ソートを実行しても、同等の要素の順序は変わりません。
ソートアルゴリズムは修正マージソートです。このソートでは、下位のサブリストにおける最高レベルの要素が上位のサブリストにおける最低レベルの要素より小さい場合、マージは省略されます。このアルゴリズムは、常に n log(n) のパフォーマンスを提供し、ほとんどソートされたリストではパフォーマンスは一次式に近づく場合もあります。
指定されたリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。この実装は、指定されたリストの配列へのダンプ、配列のソート、リストの繰り返し処理を行うことにより、配列の対応する位置から各要素を再設定します。これは、リンクされたリストを適所にソートしようとした場合の n2 log(n) のパフォーマンスになるのを回避します。
list - ソートされるリストc - リストの順序を決定するコンパレータ。null 値は、要素の「自然順序付け」を使用することを示すClassCastException - リストに指定されたコンパレータで「相互に比較」できない要素がある場合UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合Comparator
public static int binarySearch(List list,
Object key)
「ランダムアクセス」リストの場合、このメソッドは log(n) 時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストで呼び出された場合、このメソッドは n log(n) 時間で動作する場合があります (位置を指定したアクセスに一次時間が必要)。
指定されたリストが AbstracSequentialList インタフェースを実装する場合、このメソッドはバイナリサーチではなくシーケンシャルサーチを行います。このため、このメソッドが LinkedList オブジェクトで呼び出された場合に n log(n) のパフォーマンスではなく一次式のパフォーマンスを提供します。list - 検索されるリストkey - 検索されるキーClassCastException - リストに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合、または検索キーがリストの要素と相互に比較可能でない場合Comparable,
sort(List)
public static int binarySearch(List list,
Object key,
Comparator c)
「ランダムアクセス」リストの場合、このメソッドは log(n) 時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストで呼び出された場合、このメソッドは n log(n) 時間で動作する場合があります (位置を指定したアクセスに一次時間が必要)。
指定されたリストが AbstracSequentialList インタフェースを実装する場合、このメソッドはバイナリサーチではなくシーケンシャルサーチを行います。このため、このメソッドが LinkedList オブジェクトで呼び出された場合に n log(n) のパフォーマンスではなく一次式のパフォーマンスを提供します。list - 検索されるリストkey - 検索されるキーc - リストが順序付けされるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示すClassCastException - リストに指定されたコンパレータで「相互に比較可能」でない要素がある場合、または検索キーがこのコンパレータを使ってリストの要素と相互に比較できない場合Comparable,
sort(List, Comparator)public static void reverse(List l)
このメソッドは一次時間で動作します。
l - 要素の順序が逆にされるリストUnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合public static void shuffle(List list)
上記の説明で「ほぼ」という言葉を使用しているのは、乱数発生の元となるデフォルトのソースが、独立して選択されたビットのソースとして偏りがないのは近似的にのみ成立するからです。ランダムに選択された完全なソースであれば、アルゴリズムが組み合わせを選択する確率は、完全に一様になります。
この実装は、リストの最後の要素から 2 番目の要素まで逆方向にたどり、無作為に選択された要素を「現在の位置」に繰り返し入れ替えます。要素は、リストの最初の要素から現在の位置までの範囲で無作為に選択されます。
「ランダムアクセス」リストの場合、このメソッドは一次時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストの場合、このメソッドは 2 次時間を必要とする場合があります。
list - 順序が入れ替えられるリストUnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合
public static void shuffle(List list,
Random rnd)
この実装は、リストの最後の要素から 2 番目の要素まで逆方向にたどり、無作為に選択された要素を「現在の位置」に繰り返し入れ替えます。要素は、リストの最初の要素から現在の位置までの範囲で無作為に選択されます。
「ランダムアクセス」リストの場合、このメソッドは一次時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストの場合、このメソッドは 2 次時間を必要とする場合があります。
list - 順序が入れ替えられるリストrnd - リストの順序を入れ替えるために使う乱数発生の元UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合
public static void fill(List list,
Object o)
このメソッドは一次時間で動作します。
list - 指定された要素が挿入されるリストo - 指定されたリストに挿入される要素UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合
public static void copy(List dest,
List src)
このメソッドは一次時間で動作します。
dest - コピー先のリストsrc - コピー元のリストIndexOutOfBoundsException - コピー先のリストがコピー元のリスト全体を格納するには小さすぎる場合UnsupportedOperationException - コピーリストのリスト反復子が set オペレーションをサポートしない場合public static Object min(Collection coll)
このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。
coll - 最小の要素を決めるコレクションClassCastException - コレクションに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合NoSuchElementException - コレクションが空の場合Comparable
public static Object min(Collection coll,
Comparator comp)
このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。
coll - 最小の要素を決めるコレクションcomp - 最小の要素リストが決定されるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示すClassCastException - コレクションに指定されたコンパレータで「相互に比較」できない要素がある場合NoSuchElementException - コレクションが空の場合Comparablepublic static Object max(Collection coll)
このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。
coll - 最大の要素を決めるコレクションClassCastException - コレクションに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合NoSuchElementException - コレクションが空の場合Comparable
public static Object max(Collection coll,
Comparator comp)
このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。
coll - 最大の要素を決めるコレクションcomp - 最大の要素リストを決定するコンパレータ。null 値は、要素の「自然順序付け」を使用することを示すClassCastException - コレクションに指定されたコンパレータで「相互に比較」できない要素がある場合NoSuchElementException - コレクションが空の場合Comparablepublic static Collection unmodifiableCollection(Collection c)
返されたコレクションは、hashCode オペレーションおよび equals オペレーションを基となるコレクションに渡すことはなく、Object の equals メソッドおよび hashCode メソッドに依存します。これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。
返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。
c - 変更不可能なビューが返されるコレクションpublic static Set unmodifiableSet(Set s)
返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。
s - 変更不可能なビューが返されるセットpublic static SortedSet unmodifiableSortedSet(SortedSet s)
返されたソートセットは、指定されたソートセットが直列化可能の場合は直列化可能です。
s - 変更不可能なビューが返されるソートセットpublic static List unmodifiableList(List list)
返されたリストは、指定されたリストが直列化可能の場合にだけ直列化可能になります。
list - 変更不可能なビューが返されるリストpublic static Map unmodifiableMap(Map m)
返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
m - 変更不可能なビューが返されるマップpublic static SortedMap unmodifiableSortedMap(SortedMap m)
返されたソートマップは、指定されたソートマップが直列化可能の場合は直列化可能です。
m - 変更不可能なビューが返されるソートマップpublic static Collection synchronizedCollection(Collection c)
返されたコレクションの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
Collection c = Collections.synchronizedCollection(myCollection);
...
synchronized(c) {
Iterator i = c.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
これを行わない場合、動作は保証されません。
返されたコレクションは、hashCode オペレーションおよび equals オペレーションを基となるコレクションに渡すことはなく、Object の equals および hashCode メソッドに依存します。これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。
返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。
c - 同期コレクションに「ラップ」されるコレクションpublic static Set synchronizedSet(Set s)
返されたセットの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
Set s = Collections.synchronizedSet(new HashSet());
...
synchronized(s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
これを行わない場合、動作は保証されません。
返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。
s - 同期セットに「ラップ」されるセットpublic static SortedSet synchronizedSortedSet(SortedSet s)
返されたソートセット、またはその subSet、headSet、あるいは tailSet ビューの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
SortedSet s = Collections.synchronizedSortedSet(new HashSortedSet());
...
synchronized(s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
または
SortedSet s = Collections.synchronizedSortedSet(new HashSortedSet());
SortedSet s2 = s.headSet(foo);
...
synchronized(s) { // Note: s, not s2!!!
Iterator i = s2.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
これを行わない場合、動作は保証されません。
返されたソートセットは、指定されたソートセットが直列化可能の場合は直列化可能です。
s - 同期ソートセットに「ラップ」されるソートセットpublic static List synchronizedList(List list)
返されたリストの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
これを行わない場合、動作は保証されません。
返されたリストは、指定されたリストが直列化可能の場合にだけ直列化可能になります。
list - 同期リストに「ラップ」されるリストpublic static Map synchronizedMap(Map m)
返されたマップのコレクションビューでの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
Map m = Collections.synchronizedMap(new HashMap());
...
Set s = m.keySet(); // Needn't be in synchronized block
...
synchronized(m) { // Synchronizing on m, not s!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
これを行わない場合、動作は保証されません。
返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
m - 同期マップに「ラップ」されるマップpublic static SortedMap synchronizedSortedMap(SortedMap m)
返されたソートマップのコレクションビュー、または subMap、headMap、tailMap ビューのコレクションビューでの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
SortedMap m = Collections.synchronizedSortedMap(new HashSortedMap());
...
Set s = m.keySet(); // Needn't be in synchronized block
...
synchronized(m) { // Synchronizing on m, not s!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
または
SortedMap m = Collections.synchronizedSortedMap(new HashSortedMap());
SortedMap m2 = m.subMap(foo, bar);
...
Set s2 = m2.keySet(); // Needn't be in synchronized block
...
synchronized(m) { // Synchronizing on m, not m2 or s2!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
これを行わない場合、動作は保証されません。
返されたソートマップは、指定されたソートマップが直列化可能の場合は直列化可能です。
m - 同期ソートマップに「ラップ」されるソートマップpublic static Set singleton(Object o)
o - 返されるセットに格納されている唯一のオブジェクトpublic static List singletonList(Object o)
o - 返されるリストに格納されている唯一のオブジェクト
public static Map singletonMap(Object key,
Object value)
key - 返されるマップに格納されている唯一のキーvalue - 返されるマップによって key がマッピングされる値
public static List nCopies(int n,
Object o)
n - 返されるリストの要素数o - 返されるリストに繰り返し現れる要素IllegalArgumentException - n < 0 の場合List.addAll(Collection),
List.addAll(int, Collection)public static Comparator reverseOrder()
Arrays.sort(a, Collections.reverseOrder());逆引きの辞書編集順 (アルファベット順) で配列をソートします。
返されるコンパレータは直列化可能です。
Comparablepublic static Enumeration enumeration(Collection c)
c - 列挙が返されるコレクション
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.