JavaTM 2
Platform
Std. Ed. v1.4.0

java.util
クラス Collections

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

public class Collections
extends Object

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

このクラスのメソッドに提供されるコレクションが null の場合、このクラスのメソッドはNullPointerException をすべてスローします。

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

コレクションが set メソッドのような適切な変異プリミティブ型メソッドをサポートしていない場合、このクラス (処理されるコレクションを修正するアルゴリズム) に含まれていた「破壊的」アルゴリズムは、UnsupportedOperationException をスローするように指定されています。呼び出しがコレクションに影響しない場合、こうしたアルゴリズムは例外をスローする場合がありますが、必須ではありません。たとえば、ソート済みの変更不可能なリストで、sort メソッドを呼び出すと、UnsupportedOperationException. がスローされる場合とスローされない場合があります。

導入されたバージョン:
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 obj)
          指定されたリストのすべての要素を指定された要素で置き換えます。
static int indexOfSubList(List source, List target)
          指定されたソースリスト内で、指定されたターゲットリストが最初に出現した位置の開始位置を返します。
static int lastIndexOfSubList(List source, List target)
          指定されたソースリスト内で、最後に出現した指定ターゲットリストの開始位置を返します。
static ArrayList list(Enumeration e)
          指定された列挙により返された要素を含む配列リストを、返された順番で返します。
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 boolean replaceAll(List list, Object oldVal, Object newVal)
          リスト内に出現する指定された値をすべて他の値に置き換えます。
static void reverse(List list)
          指定されたリストの要素の順序を逆にします。
static Comparator reverseOrder()
          Comparable インタフェースを実装するオブジェクトのコレクションで「自然順序付け」の逆を義務付けるコンパレータを返します。
static void rotate(List list, int distance)
          指定されたリストの要素を、指定された距離により回転します。
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 void swap(List list, int i, int j)
          指定されたリストの指定された位置にある要素をスワップします。
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) 時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。指定されたリストが RandomAccess を実装せず、大きなリストである場合、 O(n) リンクトラバーサルと O(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) 時間で動作します (位置を指定したアクセスにほぼ一定の時間が必要)。指定リストが RandomAccess を実装せず、大きい場合は、 O(n) リンクトラバーサルと O(log n) 要素比較を実行する反復子ベースのバイナリサーチを、このメソッドは行います。

パラメータ:
list - 検索されるリスト
key - 検索されるキー
c - リストが順序付けされるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示す
戻り値:
リストに検索キーがある場合は検索キーのインデックス。検索キーがリストにない場合は (-(挿入ポイント) - 1)。挿入ポイントとは、リストでキーが挿入されるポイントである。つまり、キーより大きな最初の要素のインデックスか、リストのすべての要素が指定されたキーより小さい場合は list.size()。これにより、キーが見つかった場合にだけ戻り値が >= 0 になることが保証される
例外:
ClassCastException - リストに指定されたコンパレータで「相互に比較可能」でない要素がある場合、または検索キーがこのコンパレータを使ってリストの要素と相互に比較できない場合
関連項目:
Comparable, sort(List, Comparator)

reverse

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

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

パラメータ:
list - 要素の順序が逆にされるリスト
例外:
UnsupportedOperationException - 指定されたリストまたはそのリスト反復子が set メソッドをサポートしない場合

shuffle

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

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

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

このメソッドは 1 次時間で動作します。指定されたリストが RandomAccess を実装せず、大きなリストである場合、リストの順序を入れ替える前に、この実装は指定されたリストを配列へダンプして、次に入れ替えた配列をリストにダンプして戻します。適切に「順次アクセス」リストの順序を入れ替えることによって起こる 2 次動作を避けるためです。

パラメータ:
list - 順序が入れ替えられるリスト
例外:
UnsupportedOperationException - 指定されたリストまたはそのリスト反復子が set メソッドをサポートしない場合

shuffle

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

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

このメソッドは 1 次時間で動作します。指定されたリストが RandomAccess インタフェースを実装しない、大きなリストである場合、リストの順序を入れ替える前に、この実装は指定されたリストを配列へダンプして、次に入れ替えた配列をリストにダンプして戻します。適切に「順次アクセス」リストの順序を入れ替えることによって起こる 2 次動作を避けるためです。

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

swap

public static void swap(List list,
                        int i,
                        int j)
指定されたリストの指定された位置にある要素をスワップします。指定された位置が同じである場合、このメソッドを呼び出しても、リストは変更されません。

パラメータ:
list - 要素をスワップするリスト
i - スワップされる 1 つの要素のインデックス
j - スワップされるもう 1 つの要素のインデックス
例外:
IndexOutOfBoundsException - i または j のいずれかが範囲外の場合 (i < 0 || i >= list.size() || j < 0 || j >= list.size())
導入されたバージョン:
1.4

fill

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

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

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

copy

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

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

パラメータ:
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

rotate

public static void rotate(List list,
                          int distance)
指定されたリストの要素を、指定された距離により回転します。このメソッドを呼び出したあと、0 (この値を含む) から list.size()-1 (この値を含む) までの ( i のすべての値については、インデックス i の要素は、以前、インデックス (i - distance) mod list.size() にあった要素となります。このメソッドはリストのサイズには影響を及ぼしません。

たとえば、list には [t, a, n, k, s] が含まれるとします。Collections.rotate(list, 1) (あるいは Collections.rotate(list, -4)) を呼び出したあと、list には [s, t, a, n, k] が含まれます。

このメソッドをサブリストに有効に適用して、残りの要素の順序を保存しながら、リスト内の 1 つまたは複数の要素を移動することができます。たとえば、次の慣用法は、インデックス j にある要素を位置 k に移動します (kj はより大きいか、等値である必要があります)。

     Collections.rotate(list.subList(j, k+1), -1);
これを固定するために、list[a, b, c, d, e] が含まれると仮定します。インデックス 1 (b) にある要素を 2 つの位置に進めるためには、次の呼び出しを実行します。
     Collections.rotate(l.subList(1, 4), -1);
その結果、リストは [a, c, d, b, e] になります。

複数の要素を進めるためには、回転距離の絶対値を増加させます。後ろに移動させるには、正のシフト移動量を使用します。

指定された値が小さいリストであるか、 RandomAccess インタフェースを実装している場合、この実装は第 1 の要素を移動すべき位置に交換します。次に、置き換えられた要素が最初の要素にスワップされるまで、置き換えられた要素を移動すべき位置に繰り返し交換します。必要に応じて、回転が完了するまで、第 2 要素および連続する要素についてこのプロセスが繰り返されます。指定されたリストが大きく、RandomAccess インタフェースを実装していない場合、この実装は、インデックス-distance mod size の 2 つのサブリストビューにリストを分割します。次に、reverse(List) メソッドは、それぞれのサブリストビューで呼び出され、最終的にはリスト全体で呼び出されます。2 つのアルゴリズムの詳細については、Jon Bentley の Programming Pearls (Addison-Wesley, 1986) のセクション 2.3 を参照してください。

パラメータ:
list - 回転されるリスト
distance - リストを回転する距離。この値に制約はありません。値は 0 でも、負でも、list.size() より大きくてもかまいません。
例外:
UnsupportedOperationException - 指定されたリストまたはそのリスト反復子が set メソッドをサポートしない場合
導入されたバージョン:
1.4

replaceAll

public static boolean replaceAll(List list,
                                 Object oldVal,
                                 Object newVal)
リスト内に出現する指定された値をすべて他の値に置き換えます。つまり、list 内で (oldVal==null ? e==null : oldVal.equals(e)) となる各要素 enewVal に置き換えます。このメソッドはリストのサイズには影響を及ぼしません。

パラメータ:
list - 置換が生じるリスト
oldVal - 置換前の値
newVal - oldVal の置換後の値
戻り値:
list が、 (oldVal==null ? e==null : oldVal.equals(e)) となる 1 つまたは複数の要素 e を含む場合は true
例外:
UnsupportedOperationException - 指定されたリストまたはそのリスト反復子が set メソッドをサポートしない場合
導入されたバージョン:
1.4

indexOfSubList

public static int indexOfSubList(List source,
                                 List target)
指定されたソースリスト内で、指定されたターゲットリストが最初に出現した位置の開始位置を返します。または、こうした出現がない場合は -1 を返します。つまり、source.subList(i, i+target.size()).equals(target) となる、最小のインデックス値 i を返します。またはこうしたインデックス値がない場合は -1 を返します。 target.size() > source.size() の場合は -1 を返します。

この実装は、ソースリストをスキャニングする「強引な」技術を使用して、ソースリストの各位置でターゲットと一致するか順番に検索します。

パラメータ:
source - 最初に出現する target を検索するリスト
target - source の subList として検索するリスト
戻り値:
指定されたソースリスト内で、最初に出現した指定ターゲットリストの開始位置。こうした出現がない場合は、-1。
導入されたバージョン:
1.4

lastIndexOfSubList

public static int lastIndexOfSubList(List source,
                                     List target)
指定されたソースリスト内で、最後に出現した指定ターゲットリストの開始位置を返します。または、こうした出現がない場合は -1 を返します。つまり、source.subList(i, i+target.size()).equals(target) となる、最大のインデックス値 i を返します。こうしたインデックス値がない場合は -1 を返します。 target.size() > source.size() の場合は -1 を返します。

この実装では、ソースリストの繰り返し処理を行う「強引な」技術を使用して、各位置でターゲットと一致するか順番に検索します。

パラメータ:
source - 最後に出現する target を検索するリスト
target - source のsubList として検索するリスト
戻り値:
指定されたソースリスト内で、最後に出現した指定ターゲットリストの開始位置。こうした出現がない場合は、-1。
導入されたバージョン:
1.4

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 がスローされます。

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

パラメータ:
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 - 列挙が返されるコレクション
戻り値:
指定されたコレクションの列挙
関連項目:
Enumeration

list

public static ArrayList list(Enumeration e)
指定された列挙により返された要素を含む配列リストを、返された順番で返します。このメソッドでは、列挙を返す従来の API と、コレクションを必要とする新規 API との相互運用性を実現しています。

パラメータ:
e - 返される配列リストの要素を提供する列挙
戻り値:
指定された列挙により返される要素を含む配列リスト
導入されたバージョン:
1.4
関連項目:
Enumeration, ArrayList

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.