JavaTM 2 Platform
Std. Ed. v1.3

java.util
クラス Collections

java.lang.Object
  |
  +--java.util.Collections

public class Collections
extends Object

このクラスは、コレクションに作用するか、コレクションを返す static メソッドだけで構成されます。このクラスには、指定されたコレクションを基にした新しいコレクションを返す「ラッパー」など、コレクションに対して作用するさまざまなアルゴリズムがあります。

このクラスにあるさまざまなアルゴリズムのドキュメントには、通常、「実装」の簡単な説明が含まれています。この説明は、「仕様」の一部ではなく「実装情報」と考えてください。実装者は、仕様に反しない限り、ほかのアルゴリズムを自由に使用できます。たとえば、sort が使用するアルゴリズムはマージソートである必要はありませんが、「固定 (stable)」のアルゴリズムでなければなりません。

導入されたバージョン:
1.2
関連項目:
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
 

フィールドの詳細

EMPTY_SET

public static final Set EMPTY_SET
空のセットです (不変)。このセットは直列化可能です。

EMPTY_LIST

public static final List EMPTY_LIST
空のリストです (不変)。このリストは直列化可能です。

EMPTY_MAP

public static final Map EMPTY_MAP
空のマップです (不変)。このマップは直列化可能です。
導入されたバージョン:
1.3
メソッドの詳細

sort

public static void sort(List list)
要素の「自然順序付け」に従って、指定されたリストを昇順にソートします。リストのすべての要素は、Comparable インタフェースを実装している必要があります。さらに、リストのすべての要素は、「相互に比較可能」でなければなりません。つまり、e1.compareTo(e2) はリストの要素が e1e2 の場合、ClassCastException をスローすべきではありません。

このソートは固定であることが保証されています。つまり、ソートを実行しても、同等の要素の順序は変わりません。

指定されたリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。

ソートアルゴリズムは修正マージソートです。このソートでは、下位のサブリストにおける最高レベルの要素が上位のサブリストにおける最低レベルの要素より小さい場合、マージは省略されます。このアルゴリズムは、常に n log(n) のパフォーマンスを提供し、ほとんどソートされたリストではパフォーマンスは一次式に近づく場合もあります。

この実装は、指定されたリストの配列へのダンプ、配列のソート、リストでの繰り返し処理を行うことにより、配列の対応する位置から各要素を再設定します。これは、リンクされたリストを適所にソートしようとした場合の n2 log(n) のパフォーマンスになるのを回避します。

パラメータ:
list - ソートされるリスト
例外:
ClassCastException - リストに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合
UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合
関連項目:
Comparable

sort

public static void sort(List list,
                        Comparator c)
指定されたコンパレータが示す順序に従って、指定されたリストをソートします。リストのすべての要素は、指定されたコンパレータによって「相互に比較可能」でなければなりません。つまり、c.compare(e1, e2) はリストの要素が e1e2 の場合 ClassCastException をスローすべきではありません。

このソートは固定であることが保証されています。つまり、ソートを実行しても、同等の要素の順序は変わりません。

ソートアルゴリズムは修正マージソートです。このソートでは、下位のサブリストにおける最高レベルの要素が上位のサブリストにおける最低レベルの要素より小さい場合、マージは省略されます。このアルゴリズムは、常に n log(n) のパフォーマンスを提供し、ほとんどソートされたリストではパフォーマンスは一次式に近づく場合もあります。

指定されたリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。この実装は、指定されたリストの配列へのダンプ、配列のソート、リストの繰り返し処理を行うことにより、配列の対応する位置から各要素を再設定します。これは、リンクされたリストを適所にソートしようとした場合の n2 log(n) のパフォーマンスになるのを回避します。

パラメータ:
list - ソートされるリスト
c - リストの順序を決定するコンパレータ。null 値は、要素の「自然順序付け」を使用することを示す
例外:
ClassCastException - リストに指定されたコンパレータで「相互に比較」できない要素がある場合
UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合
関連項目:
Comparator

binarySearch

public static int binarySearch(List list,
                               Object key)
バイナリサーチアルゴリズムを使って、指定されたリストから指定されたオブジェクトを検索します。リストは、この呼び出しの前に、前述の sort(List) メソッドを使って要素の「自然順序付け」に従って昇順にソートする必要があります。ソートされていない場合、結果は定義されません。指定されたオブジェクトと等しい要素がリストに複数ある場合、どれが見つかるかは保証されません。

「ランダムアクセス」リストの場合、このメソッドは log(n) 時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストで呼び出された場合、このメソッドは n log(n) 時間で動作する場合があります (位置を指定したアクセスに一次時間が必要)。

指定されたリストが AbstracSequentialList インタフェースを実装する場合、このメソッドはバイナリサーチではなくシーケンシャルサーチを行います。このため、このメソッドが LinkedList オブジェクトで呼び出された場合に n log(n) のパフォーマンスではなく一次式のパフォーマンスを提供します。
パラメータ:
list - 検索されるリスト
key - 検索されるキー
戻り値:
リストに検索キーがある場合は検索キーのインデックス。検索キーがリストにない場合は (-(挿入ポイント) - 1)。「挿入ポイント」とは、リストでキーが挿入されるポイントである。つまり、キーより大きな最初の要素のインデックスか、リストのすべての要素が指定されたキーより小さい場合は list.size()。これにより、キーが見つかった場合にだけ戻り値が >= 0 になることが保証される
例外:
ClassCastException - リストに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合、または検索キーがリストの要素と相互に比較可能でない場合
関連項目:
Comparable, sort(List)

binarySearch

public static int binarySearch(List list,
                               Object key,
                               Comparator c)
バイナリサーチアルゴリズムを使って、指定されたリストから指定されたオブジェクトを検索します。リストは、この呼び出しの前に、Sort(List, Comparator) メソッドを使って、指定されたコンパレータに従って昇順にソートしなければなりません。リストがソートされていない場合、結果は定義されません。指定されたオブジェクトと等しい要素がリストに複数ある場合、どれが見つかるかは保証されません。

「ランダムアクセス」リストの場合、このメソッドは log(n) 時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストで呼び出された場合、このメソッドは n log(n) 時間で動作する場合があります (位置を指定したアクセスに一次時間が必要)。

指定されたリストが AbstracSequentialList インタフェースを実装する場合、このメソッドはバイナリサーチではなくシーケンシャルサーチを行います。このため、このメソッドが LinkedList オブジェクトで呼び出された場合に n log(n) のパフォーマンスではなく一次式のパフォーマンスを提供します。
パラメータ:
list - 検索されるリスト
key - 検索されるキー
c - リストが順序付けされるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示す
戻り値:
リストに検索キーがある場合は検索キーのインデックス。検索キーがリストにない場合は (-(挿入ポイント) - 1)。挿入ポイントとは、リストでキーが挿入されるポイントである。つまり、キーより大きな最初の要素のインデックスか、リストのすべての要素が指定されたキーより小さい場合は list.size()。これにより、キーが見つかった場合にだけ戻り値が >= 0 になることが保証される
例外:
ClassCastException - リストに指定されたコンパレータで「相互に比較可能」でない要素がある場合、または検索キーがこのコンパレータを使ってリストの要素と相互に比較できない場合
関連項目:
Comparable, sort(List, Comparator)

reverse

public static void reverse(List l)
指定されたリストの要素の順序を逆にします。

このメソッドは一次時間で動作します。

パラメータ:
l - 要素の順序が逆にされるリスト
例外:
UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合

shuffle

public static void shuffle(List list)
デフォルトの乱数発生の元を使って、指定されたリストの順序を無作為に入れ替えます。あらゆる組み合わせが、ほぼ均等な確率で発生します。

上記の説明で「ほぼ」という言葉を使用しているのは、乱数発生の元となるデフォルトのソースが、独立して選択されたビットのソースとして偏りがないのは近似的にのみ成立するからです。ランダムに選択された完全なソースであれば、アルゴリズムが組み合わせを選択する確率は、完全に一様になります。

この実装は、リストの最後の要素から 2 番目の要素まで逆方向にたどり、無作為に選択された要素を「現在の位置」に繰り返し入れ替えます。要素は、リストの最初の要素から現在の位置までの範囲で無作為に選択されます。

「ランダムアクセス」リストの場合、このメソッドは一次時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストの場合、このメソッドは 2 次時間を必要とする場合があります。

パラメータ:
list - 順序が入れ替えられるリスト
例外:
UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合

shuffle

public static void shuffle(List list,
                           Random rnd)
デフォルトの乱数発生の元を使って、指定されたリストの順序を無作為に入れ替えます。乱数発生の元が一様であれば、すべての組み合わせは均等な確率で発生します。

この実装は、リストの最後の要素から 2 番目の要素まで逆方向にたどり、無作為に選択された要素を「現在の位置」に繰り返し入れ替えます。要素は、リストの最初の要素から現在の位置までの範囲で無作為に選択されます。

「ランダムアクセス」リストの場合、このメソッドは一次時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。「順次アクセス」リストの場合、このメソッドは 2 次時間を必要とする場合があります。

パラメータ:
list - 順序が入れ替えられるリスト
rnd - リストの順序を入れ替えるために使う乱数発生の元
例外:
UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合

fill

public static void fill(List list,
                        Object o)
指定されたリストのすべての要素を指定された要素で置き換えます。

このメソッドは一次時間で動作します。

パラメータ:
list - 指定された要素が挿入されるリスト
o - 指定されたリストに挿入される要素
例外:
UnsupportedOperationException - 指定されたリストのリスト反復子が set オペレーションをサポートしない場合

copy

public static void copy(List dest,
                        List src)
あるリストから別のリストにすべての要素をコピーします。このオペレーションのあと、コピー先のリストにコピーされた各要素のインデックスは、コピー元のリストのインデックスと同じになります。コピー先のリストは、少なくともコピー元のリストと同じ長さでなければなりません。コピー先のリストが長い場合でも、コピー先のリストの残りの要素は影響を受けません。

このメソッドは一次時間で動作します。

パラメータ:
dest - コピー先のリスト
src - コピー元のリスト
例外:
IndexOutOfBoundsException - コピー先のリストがコピー元のリスト全体を格納するには小さすぎる場合
UnsupportedOperationException - コピーリストのリスト反復子が set オペレーションをサポートしない場合

min

public static Object min(Collection coll)
要素の「自然順序付け」に従って、指定されたコレクションの最小の要素を返します。コレクションのすべての要素は、Comparable インタフェースを実装している必要があります。さらに、コレクションのすべての要素は、「相互に比較可能」でなければなりません。つまり、e1.compareTo(e2) はコレクションの要素が e1 および e2 の場合 ClassCastException をスローすべきではありません。

このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。

パラメータ:
coll - 最小の要素を決めるコレクション
戻り値:
要素の「自然順序付け」に従った、指定されたコレクションの最小の要素
例外:
ClassCastException - コレクションに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合
NoSuchElementException - コレクションが空の場合
関連項目:
Comparable

min

public static Object min(Collection coll,
                         Comparator comp)
指定されたコンパレータが示す順序に従って、指定されたコレクションの最小の要素を返します。コレクションのすべての要素は、指定されたコンパレータで「相互に比較可能」でなければなりません。つまり、comp.compare(e1, e2) は、コレクションの要素が e1e2 の場合 ClassCastException をスローすべきではありません。

このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。

パラメータ:
coll - 最小の要素を決めるコレクション
comp - 最小の要素リストが決定されるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示す
戻り値:
指定されたコンパレータに従った、指定されたコレクションの最小の要素
例外:
ClassCastException - コレクションに指定されたコンパレータで「相互に比較」できない要素がある場合
NoSuchElementException - コレクションが空の場合
関連項目:
Comparable

max

public static Object max(Collection coll)
要素の「自然順序付け」に従って、指定されたコレクションの最大の要素を返します。コレクションのすべての要素は、Comparable インタフェースを実装している必要があります。さらに、コレクションのすべての要素は、「相互に比較可能」でなければなりません。つまり、e1.compareTo(e2) は、コレクションの要素が e1e2 の場合 ClassCastException をスローすべきではありません。

このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。

パラメータ:
coll - 最大の要素を決めるコレクション
戻り値:
要素の「自然順序付け」に従った、指定されたコレクションの最大の要素
例外:
ClassCastException - コレクションに「相互に比較可能」でない要素 (たとえば、文字列と整数) がある場合
NoSuchElementException - コレクションが空の場合
関連項目:
Comparable

max

public static Object max(Collection coll,
                         Comparator comp)
指定されたコンパレータが示す順序に従って、指定されたコレクションの最大の要素を返します。コレクションのすべての要素は、指定されたコンパレータで「相互に比較可能」でなければなりません。つまり、comp.compare(e1, e2) はコレクションの要素が e1e2 の場合 ClassCastException をスローすべきではありません。

このメソッドはコレクション全体で繰り返し処理を行うので、コレクションのサイズに比例した時間が必要です。

パラメータ:
coll - 最大の要素を決めるコレクション
comp - 最大の要素リストを決定するコンパレータ。null 値は、要素の「自然順序付け」を使用することを示す
戻り値:
指定されたコンパレータに従った、指定されたコレクションの最大の要素
例外:
ClassCastException - コレクションに指定されたコンパレータで「相互に比較」できない要素がある場合
NoSuchElementException - コレクションが空の場合
関連項目:
Comparable

unmodifiableCollection

public static Collection unmodifiableCollection(Collection c)
指定されたコレクションの変更不可能なビューを返します。このメソッドを使うと、モジュールはユーザに内部コレクションへの「読み取り専用」アクセス権を提供できます。返されたコレクションでのクエリーオペレーションは、指定されたコレクションを直接読み取ります。直接かその反復子を使うかに関係なく、返されたコレクションを変更しようとすると UnsupportedOperationException がスローされます。

返されたコレクションは、hashCode オペレーションおよび equals オペレーションを基となるコレクションに渡すことはなく、Objectequals メソッドおよび hashCode メソッドに依存します。これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。

返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。

パラメータ:
c - 変更不可能なビューが返されるコレクション
戻り値:
指定されたコレクションの変更不可能なビュー

unmodifiableSet

public static Set unmodifiableSet(Set s)
指定されたセットの変更不可能なビューを返します。このメソッドを使うと、モジュールはユーザに内部セットへの「読み取り専用」アクセス権を提供できます。返されたセットでのクエリーオペレーションは、指定されたセットを直接読み取り、直接かその反復子を使うかに関係なく、返されたセットを変更しようとすると UnsupportedOperationException がスローされます。

返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。

パラメータ:
s - 変更不可能なビューが返されるセット
戻り値:
指定されたセットの変更不可能なビュー

unmodifiableSortedSet

public static SortedSet unmodifiableSortedSet(SortedSet s)
指定されたソートセットの変更不可能なビューを返します。このメソッドを使うと、モジュールはユーザに内部ソートセットへの「読み取り専用」アクセス権を提供できます。返されたソートセットでのクエリーオペレーションは、指定されたソートセットを直接読み取ります。直接か、その反復子を使うか、あるいはビューの subSetheadSettailSet を使うかに関係なく、ソートセットを変更しようとすると UnsupportedOperationException がスローされます。

返されたソートセットは、指定されたソートセットが直列化可能の場合は直列化可能です。

パラメータ:
s - 変更不可能なビューが返されるソートセット
戻り値:
指定されたソートセットの変更不可能なビュー

unmodifiableList

public static List unmodifiableList(List list)
指定されたリストの変更不可能なビューを返します。このメソッドを使うと、モジュールはユーザに内部リストへの「読み取り専用」アクセス権を提供できます。返されたリストでのクエリーオペレーションは、指定されたリストを直接読み取ります。直接か、その反復子を使うかに関係なく、返されたリストを変更しようとすると UnsupportedOperationException がスローされます。

返されたリストは、指定されたリストが直列化可能の場合にだけ直列化可能になります。

パラメータ:
list - 変更不可能なビューが返されるリスト
戻り値:
指定されたリストの変更不可能なビュー

unmodifiableMap

public static Map unmodifiableMap(Map m)
指定されたマップの変更不可能なビューを返します。このメソッドを使うと、モジュールはユーザに内部マップへの「読み取り専用」アクセス権を提供できます。返されたマップでのクエリーオペレーションは、指定されたマップを直接読み取ります。直接か、そのコレクションビューを使うかに関係なく、返されたマップを変更しようとすると UnsupportedOperationException がスローされます。

返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。

パラメータ:
m - 変更不可能なビューが返されるマップ
戻り値:
指定されたマップの変更不可能なビュー

unmodifiableSortedMap

public static SortedMap unmodifiableSortedMap(SortedMap m)
指定されたソートマップの変更不可能なビューを返します。このメソッドを使うと、モジュールはユーザに内部ソートマップへの「読み取り専用」アクセス権を提供できます。返されたソートマップでのクエリーオペレーションは、指定されたソートマップを直接読み取ります。直接か、そのコレクションビューを使うか、またはビュー subMapheadMaptailMap を使うかに関係なく、返されたソートマップを変更しようとすると UnsupportedOperationException がスローされます。

返されたソートマップは、指定されたソートマップが直列化可能の場合は直列化可能です。

パラメータ:
m - 変更不可能なビューが返されるソートマップ
戻り値:
指定されたソートマップの変更不可能なビュー

synchronizedCollection

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 - 同期コレクションに「ラップ」されるコレクション
戻り値:
指定されたコレクションの同期ビュー

synchronizedSet

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 - 同期セットに「ラップ」されるセット
戻り値:
指定されたセットの同期ビュー

synchronizedSortedSet

public static SortedSet synchronizedSortedSet(SortedSet s)
指定されたソートセットを基にする同期 (スレッドに対して安全な) ソートセットを返します。確実に直列アクセスを実現するには、基となるソートセットへのアクセスはすべて、返されたソートセット (またはそのビュー) を介して行う必要があります。

返されたソートセット、またはその subSetheadSet、あるいは 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 - 同期ソートセットに「ラップ」されるソートセット
戻り値:
指定されたソートセットの同期ビュー

synchronizedList

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 - 同期リストに「ラップ」されるリスト
戻り値:
指定されたリストの同期ビュー

synchronizedMap

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 - 同期マップに「ラップ」されるマップ
戻り値:
指定されたマップの同期ビュー

synchronizedSortedMap

public static SortedMap synchronizedSortedMap(SortedMap m)
指定されたソートマップを基にする同期 (スレッドに対して安全な) ソートマップを返します。確実に直列アクセスを実現するには、基になるソートマップへのアクセスはすべて、返されたソートマップ (またはそのビュー) を介して行う必要があります。

返されたソートマップのコレクションビュー、または subMapheadMaptailMap ビューのコレクションビューでの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。

  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 - 同期ソートマップに「ラップ」されるソートマップ
戻り値:
指定されたソートマップの同期ビュー

singleton

public static Set singleton(Object o)
指定されたオブジェクトだけを格納している不変のセットを返します。返されるセットは直列化可能です。
パラメータ:
o - 返されるセットに格納されている唯一のオブジェクト
戻り値:
指定されたオブジェクトだけを格納している不変のセット

singletonList

public static List singletonList(Object o)
指定されたオブジェクトだけを格納している不変のリストを返します。返されるリストは直列化可能です。
パラメータ:
o - 返されるリストに格納されている唯一のオブジェクト
戻り値:
指定されたオブジェクトだけを格納している不変のセット
導入されたバージョン:
1.3

singletonMap

public static Map singletonMap(Object key,
                               Object value)
指定された値に指定されたオブジェクトだけをマッピングする不変のマップを返します。返されるマップは直列化可能です。
パラメータ:
key - 返されるマップに格納されている唯一のキー
value - 返されるマップによって key がマッピングされる値
戻り値:
指定したキーと値のマッピングだけが格納される不変のマップ
導入されたバージョン:
1.3

nCopies

public static List nCopies(int n,
                           Object o)
指定されたオブジェクトの n 個のコピーで構成される不変のリストを返します。新しく割り当てられたデータオブジェクトは、データオブジェクトへの 1 つの参照を持つ小さなオブジェクトです。このメソッドは、List.addAll メソッドとともにリストを拡張するために使われます。返されるリストは直列化可能です。
パラメータ:
n - 返されるリストの要素数
o - 返されるリストに繰り返し現れる要素
戻り値:
指定されたオブジェクトの n 個のコピーで構成される不変のリスト
例外:
IllegalArgumentException - n < 0 の場合
関連項目:
List.addAll(Collection), List.addAll(int, Collection)

reverseOrder

public static Comparator reverseOrder()
Comparable インタフェースを実装するオブジェクトのコレクションで「自然順序付け」の逆を義務付けるコンパレータを返します。自然順序付けとは、オブジェクト自身の compareTo メソッドが示す順序のことです。これにより、Comparable インタフェースを実装するオブジェクトのコレクション (または配列) を簡単に逆自然順序でソート (または保守) できます。たとえば、a が文字列の配列であると仮定します。
 		Arrays.sort(a, Collections.reverseOrder());
 
逆引きの辞書編集順 (アルファベット順) で配列をソートします。

返されるコンパレータは直列化可能です。

戻り値:
Comparable インタフェースを実装するオブジェクトのコレクションで逆の自然順序を義務付けるコンパレータ
関連項目:
Comparable

enumeration

public static Enumeration enumeration(Collection c)
指定されたコレクションの列挙を返します。コレクションは、列挙を必要とする従来の API との相互運用性を提供します。
パラメータ:
c - 列挙が返されるコレクション
戻り値:
指定されたコレクションの列挙

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.