指定されたコレクションまたはクラス・オブジェクトがnullの場合、このクラスのメソッドはすべてNullPointerException
をスローします。
このクラスにあるさまざまなアルゴリズムのドキュメントには、通常、実装の簡単な説明が含まれています。 この説明は、仕様の一部ではなく実装ノートと考えてください。 実装者は、仕様に反しないかぎり、ほかのアルゴリズムを自由に使用できます。 (たとえば、sort
で使用されるアルゴリズムはマージ・ソートである必要はありませんが、stableである必要があります。)
このクラスに含まれる"destructive"アルゴリズム、つまり、コレクションが適切な突然変異プリミティブ (set
メソッドなど)をサポートしていない場合に、UnsupportedOperationException
をスローするようにアルゴリズムが指定されます。 呼出しがコレクションに影響しない場合、こうしたアルゴリズムは例外をスローする場合がありますが、必須ではありません。 たとえば、すでにソートされている変更不可能なリストでsort
メソッドを呼び出すと、UnsupportedOperationException
がスローされる場合とスローされない場合があります。
このクラスは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
フィールドのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明static <T> boolean
addAll
(Collection<? super T> c, T... elements) 指定されたすべての要素を指定されたコレクションに追加します。static <T> Queue
<T> asLifoQueue
(Deque<T> deque) static <T> int
binarySearch
(List<? extends Comparable<? super T>> list, T key) バイナリ・サーチ・アルゴリズムを使用して、指定されたリストから指定されたオブジェクトを検索します。static <T> int
binarySearch
(List<? extends T> list, T key, Comparator<? super T> c) バイナリ・サーチ・アルゴリズムを使用して、指定されたリストから指定されたオブジェクトを検索します。static <E> Collection
<E> checkedCollection
(Collection<E> c, Class<E> type) 指定されたコレクションの、動的に型保証されたビューを返します。static <E> List
<E> checkedList
(List<E> list, Class<E> type) 指定されたリストの動的に型保証されたビューを返します。static <K,
V> Map <K, V> checkedMap
(Map<K, V> m, Class<K> keyType, Class<V> valueType) 指定されたマップの動的に型保証されたビューを返します。static <K,
V> NavigableMap <K, V> checkedNavigableMap
(NavigableMap<K, V> m, Class<K> keyType, Class<V> valueType) 指定されたナビゲート可能なマップの動的に型保証されたビューを返します。static <E> NavigableSet
<E> checkedNavigableSet
(NavigableSet<E> s, Class<E> type) 指定されたナビゲート可能なセットの動的に型保証されたビューを返します。static <E> Queue
<E> checkedQueue
(Queue<E> queue, Class<E> type) 指定されたキューの動的に型保証されたビューを返します。static <E> Set
<E> checkedSet
(Set<E> s, Class<E> type) 指定されたセットの動的に型保証されたビューを返します。static <K,
V> SortedMap <K, V> checkedSortedMap
(SortedMap<K, V> m, Class<K> keyType, Class<V> valueType) 指定されたソート・マップの動的に型保証されたビューを返します。static <E> SortedSet
<E> checkedSortedSet
(SortedSet<E> s, Class<E> type) 指定されたソート・セットの動的に型保証されたビューを返します。static <T> void
あるリストから別のリストにすべての要素をコピーします。static boolean
disjoint
(Collection<?> c1, Collection<?> c2) 指定された2つのコレクションに共通の要素が存在しない場合、true
を返します。static <T> Enumeration
<T> 要素が1つも含まれていない列挙を返します。static <T> Iterator
<T> 要素が1つも含まれていないイテレータを返します。static final <T> List
<T> 空のリスト(不変)を返します。static <T> ListIterator
<T> 要素が1つも含まれていないリスト・イテレータを返します。static final <K,
V> Map <K, V> emptyMap()
空のマップ(不変)を返します。static final <K,
V> NavigableMap <K, V> 空のナビゲート可能なマップ(不変)を返します。static <E> NavigableSet
<E> 空のナビゲート可能なセット(不変)を返します。static final <T> Set
<T> emptySet()
空のセット(不変)を返します。static final <K,
V> SortedMap <K, V> 空の格納されたマップ(不変)を返します。static <E> SortedSet
<E> 空の格納されたセット(不変)を返します。static <T> Enumeration
<T> enumeration
(Collection<T> c) 指定されたコレクションの列挙を返します。static <T> void
指定されたリストのすべての要素を指定された要素で置き換えます。static int
frequency
(Collection<?> c, Object o) 指定されたコレクション内で、指定されたオブジェクトと等価な要素の数を返します。static int
indexOfSubList
(List<?> source, List<?> target) 指定されたソース・リスト内で、指定されたターゲット・リストが最初に出現した位置の開始位置を返します。こうした出現がない場合は -1を返します。static int
lastIndexOfSubList
(List<?> source, List<?> target) 指定されたソース・リスト内で、最後に出現した指定ターゲット・リストの開始位置を返します。こうした出現がない場合は -1を返します。static <T> ArrayList
<T> list
(Enumeration<T> e) 指定された列挙により返された要素を含む配列リストを、返された順番で返します。static <T extends Object & Comparable<? super T>>
Tmax
(Collection<? extends T> coll) 要素の自然順序付けに従って、指定されたコレクションの最大の要素を返します。static <T> T
max
(Collection<? extends T> coll, Comparator<? super T> comp) 指定されたコンパレータが示す順序に従って、指定されたコレクションの最大の要素を返します。static <T extends Object & Comparable<? super T>>
Tmin
(Collection<? extends T> coll) 要素の自然順序付けに従って、指定されたコレクションの最小の要素を返します。static <T> T
min
(Collection<? extends T> coll, Comparator<? super T> comp) 指定されたコンパレータが示す順序に従って、指定されたコレクションの最小の要素を返します。static <T> List
<T> nCopies
(int n, T o) 指定されたオブジェクトのn
コピーで構成される不変リストを返します。static <E> SequencedSet
<E> 指定されたマップによってバックアップされたシーケンス・セットを返します。static <E> Set
<E> newSetFromMap
(Map<E, Boolean> map) 指定されたマップに連動するセットを返します。static <T> boolean
replaceAll
(List<T> list, T oldVal, T newVal) リスト内に出現する指定された値をすべてほかの値に置き換えます。static void
指定されたリストの要素の順序を逆にします。static <T> Comparator
<T> Comparable
インタフェースを実装するオブジェクトのコレクションで自然順序付けの逆を義務付けるコンパレータを返します。static <T> Comparator
<T> reverseOrder
(Comparator<T> cmp) 指定されたコンパレータの逆順を義務付けるコンパレータを返します。static void
指定されたリストの要素を、指定された距離により回転します。static void
デフォルトの乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。static void
指定された乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。static void
shuffle
(List<?> list, RandomGenerator rnd) 指定された乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。static <T> Set
<T> singleton
(T o) 指定されたオブジェクトだけを格納している不変のセットを返します。static <T> List
<T> singletonList
(T o) 指定されたオブジェクトだけを格納している不変のリストを返します。static <K,
V> Map <K, V> singletonMap
(K key, V value) 指定された値に指定されたキーだけをマッピングする不変のマップを返します。static <T extends Comparable<? super T>>
void指定されたリストを、その要素の自然順序付けに従って昇順にソートします。static <T> void
sort
(List<T> list, Comparator<? super T> c) 指定されたコンパレータが示す順序に従って、指定されたリストをソートします。static void
指定されたリストの指定された位置にある要素をスワップします。static <T> Collection
<T> 指定されたコレクションに連動する同期(スレッドセーフな)コレクションを返します。static <T> List
<T> synchronizedList
(List<T> list) 指定されたリストに連動する同期(スレッドセーフな)リストを返します。static <K,
V> Map <K, V> synchronizedMap
(Map<K, V> m) 指定されたマップに連動する同期(スレッドセーフな)マップを返します。static <K,
V> NavigableMap <K, V> synchronizedNavigableMap
(NavigableMap<K, V> m) 指定されたナビゲート可能マップに連動する同期(スレッドセーフな)ナビゲート可能マップを返します。static <T> NavigableSet
<T> 指定されたナビゲート可能セットに連動する同期(スレッドセーフな)ナビゲート可能セットを返します。static <T> Set
<T> synchronizedSet
(Set<T> s) 指定されたセットに連動する同期(スレッドセーフな)セットを返します。static <K,
V> SortedMap <K, V> synchronizedSortedMap
(SortedMap<K, V> m) 指定されたソート・マップに連動する同期(スレッドセーフな)ソート・マップを返します。static <T> SortedSet
<T> 指定されたソート・セットに連動する同期(スレッドセーフな)ソート・セットを返します。static <T> Collection
<T> unmodifiableCollection
(Collection<? extends T> c) 指定されたコレクションの「変更不可能なビュー」を返します。static <T> List
<T> unmodifiableList
(List<? extends T> list) 指定されたリストの「変更不可能なビュー」を返します。static <K,
V> Map <K, V> unmodifiableMap
(Map<? extends K, ? extends V> m) 指定されたマップの「変更不可能なビュー」を返します。static <K,
V> NavigableMap <K, V> unmodifiableNavigableMap
(NavigableMap<K, ? extends V> m) 指定されたナビゲート可能なマップの「変更不可能なビュー」を返します。static <T> NavigableSet
<T> 指定されたナビゲート可能なセットの「変更不可能なビュー」を返します。static <T> SequencedCollection
<T> unmodifiableSequencedCollection
(SequencedCollection<? extends T> c) 指定されたSequencedCollection
の「変更不可能なビュー」を返します。static <K,
V> SequencedMap <K, V> unmodifiableSequencedMap
(SequencedMap<? extends K, ? extends V> m) 指定されたSequencedMap
の「変更不可能なビュー」を返します。static <T> SequencedSet
<T> unmodifiableSequencedSet
(SequencedSet<? extends T> s) 指定されたSequencedSet
の「変更不可能なビュー」を返します。static <T> Set
<T> unmodifiableSet
(Set<? extends T> s) 指定されたセットの「変更不可能なビュー」を返します。static <K,
V> SortedMap <K, V> unmodifiableSortedMap
(SortedMap<K, ? extends V> m) 指定されたソート・マップの「変更不可能なビュー」を返します。static <T> SortedSet
<T> 指定されたソート・セットの「変更不可能なビュー」を返します。
-
フィールド詳細
-
メソッドの詳細
-
sort
public static <T extends Comparable<? super T>> void sort(List<T> list) 指定されたリストを、その要素の自然順序付けに従って昇順にソートします。 リストのすべての要素は、Comparable
インタフェースを実装する必要があります。 また、リストのすべての要素は、相互に比較可能でなければいけません。つまり、リストの要素がe1
およびe2
の場合に、e1.compareTo(e2)
でClassCastException
をスローすべきではありません。このソートは固定であることが保証されています。つまり、ソートを実行しても、同等の要素の順序は変わりません。
指定されたリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。
- 実装上のノート:
- この実装は、指定されたリストと
null
コンパレータを使用し、List.sort(Comparator)
メソッドに従います。 - 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- ソートされるリスト。- 例外:
ClassCastException
- リストに相互に比較可能でない要素(たとえば、文字列と整数)がある場合。UnsupportedOperationException
- 指定されたリストのリスト・イテレータがset
オペレーションをサポートしない場合。IllegalArgumentException
- (オプション)リスト要素の自然順序付けがComparable
の規約に違反していることが実装によって検出された場合- 関連項目:
-
sort
public static <T> void sort(List<T> list, Comparator<? super T> c) 指定されたコンパレータが示す順序に従って、指定されたリストをソートします。 リストのすべての要素は、指定されたコンパレータを使用して相互に比較可能でなければいけません。つまり、リストの要素がe1
およびe2
の場合に、c.compare(e1, e2)
でClassCastException
をスローすべきではありません。このソートは固定であることが保証されています。つまり、ソートを実行しても、同等の要素の順序は変わりません。
指定されたリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。
- 実装上のノート:
- この実装は、指定されたリストとコンパレータを使用し、
List.sort(Comparator)
メソッドに従います。 - 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- ソートされるリスト。c
- リストの順序を決定するコンパレータ。null
値は、要素の自然順序付けが使用されることを示す。- 例外:
ClassCastException
- リストに、指定されたコンパレータで相互に比較できない要素がある場合。UnsupportedOperationException
- 指定されたリストのリスト・イテレータがset
オペレーションをサポートしない場合。IllegalArgumentException
- (オプション)コンパレータがComparator
の規約に違反していることが検出された場合- 関連項目:
-
binarySearch
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) バイナリ・サーチ・アルゴリズムを使用して、指定されたリストから指定されたオブジェクトを検索します。 リストは、この呼出しの前に、sort(List)
メソッドを使用して要素の自然順序付けに従って昇順にソートする必要があります。 リストがソートされていない場合、結果は定義されません。 指定されたオブジェクトと等しい要素がリストに複数ある場合、どれが見つかるかは保証されません。「ランダム・アクセス」リストの場合、このメソッドはlog(n)時間で動作します(位置を指定したアクセスにほぼ一定の時間が必要)。 指定されたリストが
RandomAccess
インタフェースを実装しない、大きなリストである場合、このメソッドはO(n)リンク・トラバーサルとO(log n)要素比較を実行するイテレータ・ベースのバイナリ・サーチを行います。- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- 検索されるリスト。key
- 検索されるキー。- 戻り値:
- リストに含まれている検索キーのインデックス。それ以外の場合は、
(-(insertion point) - 1)
。 「挿入ポイント」は、キーがリストに挿入されるポイントとして定義されます: キーより大きい最初の要素の索引、またはリスト内のすべての要素が指定のキーより小さい場合はlist.size()
。 これにより、キーが見つかった場合にのみ戻り値が>= 0になることが保証される。 - 例外:
ClassCastException
- リストに相互に比較可能でない要素(たとえば、文字列と整数)がある場合、または検索キーがリストの要素と相互に比較可能でない場合。
-
binarySearch
public static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c) バイナリ・サーチ・アルゴリズムを使用して、指定されたリストから指定されたオブジェクトを検索します。 リストは、この呼出しの前に、sort(List, Comparator)
メソッドを使用して、指定されたコンパレータに従って昇順にソートしなければいけません。 リストがソートされていない場合、結果は定義されません。 指定されたオブジェクトと等しい要素がリストに複数ある場合、どれが見つかるかは保証されません。「ランダム・アクセス」リストの場合、このメソッドはlog(n)時間で動作します(位置を指定したアクセスにほぼ一定の時間が必要)。 指定されたリストが
RandomAccess
インタフェースを実装しない、大きなリストである場合、このメソッドはO(n)リンク・トラバーサルとO(log n)要素比較を実行するイテレータ・ベースのバイナリ・サーチを行います。- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- 検索されるリスト。key
- 検索されるキー。c
- リストが順序付けされるコンパレータ。null
値は、要素の自然順序付けが使用されることを示す。- 戻り値:
- リストに含まれている検索キーのインデックス。それ以外の場合は、
(-(insertion point) - 1)
。 「挿入ポイント」は、キーがリストに挿入されるポイントとして定義されます: キーより大きい最初の要素の索引、またはリスト内のすべての要素が指定のキーより小さい場合はlist.size()
。 これにより、キーが見つかった場合にのみ戻り値が>= 0になることが保証される。 - 例外:
ClassCastException
- リストに指定されたコンパレータで相互に比較可能でない要素がある場合、または検索キーがこのコンパレータを使ってリストの要素と相互に比較できない場合。
-
reverse
public static void reverse(List<?> list) 指定されたリストの要素の順序を逆にします。このメソッドは一次時間で動作します。
- APIのノート:
- このメソッドは、指定されたリストをインプレースで変更します。 変更せずにリストの順序を逆にしたビューを取得するには、
List.reversed
メソッドを使用します。 - パラメータ:
list
- 要素の順序が逆にされるリスト。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。- 関連項目:
-
shuffle
public static void shuffle(List<?> list) デフォルトの乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。 あらゆる組み合わせが、ほぼ均等な確率で発生します。上記の説明で「ほぼ」という言葉を使用しているのは、乱数発生の元となるデフォルトのソースが、独立して選択されたビットのソースとして偏りがないのは近似的にのみ成立するからです。 ランダムに選択された完全なソースであれば、アルゴリズムが組み合わせを選択する確率は、完全に一様になります。
この実装は、リストの最後の要素から2番目の要素まで逆方向にトラバースし、無作為に選択された要素を「現在の位置」に繰返し入れ替えます。 要素は、リストの最初の要素から現在の位置までの範囲で無作為に選択されます。
- 実装要件:
- このメソッドは一次時間で動作します。 指定されたリストが
RandomAccess
インタフェースを実装しない、大きなリストである場合、リストの順序を入れ替える前に、この実装は指定されたリストを配列へダンプして、次に入れ替えた配列をリストにダンプして戻します。 適切に「順次アクセス」リストの順序を入れ替えることによって起こる2次動作を避けるためです。 - パラメータ:
list
- 順序が入れ替えられるリスト。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。
-
shuffle
指定された乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。このメソッドは、
shuffle(List, RandomGenerator)
と同等であり、下位互換性のために存在します。shuffle(List, RandomGenerator)
メソッドは、Random
クラスを拡張するランダム・ジェネレータに限定されないため、優先されます。- パラメータ:
list
- 順序が入れ替えられるリスト。rnd
- リストの順序を入れ替えるために使う乱数発生の元。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。
-
shuffle
public static void shuffle(List<?> list, RandomGenerator rnd) 指定された乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。 乱数発生の元が一様であれば、すべての組み合わせは公平な確率で発生します。この実装は、リストの最後の要素から2番目の要素まで逆方向にトラバースし、無作為に選択された要素を「現在の位置」に繰返し入れ替えます。 要素は、リストの最初の要素から現在の位置までの範囲で無作為に選択されます。
- 実装要件:
- このメソッドは一次時間で動作します。 指定されたリストが
RandomAccess
インタフェースを実装しない、大きなリストである場合、リストの順序を入れ替える前に、この実装は指定されたリストを配列へダンプして、次に入れ替えた配列をリストにダンプして戻します。 適切に「順次アクセス」リストの順序を入れ替えることによって起こる2次動作を避けるためです。 - パラメータ:
list
- 順序が入れ替えられるリスト。rnd
- リストの順序を入れ替えるために使う乱数発生の元。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。- 導入されたバージョン:
- 21
-
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 <T> void fill(List<? super T> list, T obj) 指定されたリストのすべての要素を指定された要素で置き換えます。このメソッドは一次時間で動作します。
- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- 指定された要素が挿入されるリスト。obj
- 指定されたリストに挿入される要素。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。
-
copy
あるリストから別のリストにすべての要素をコピーします。 このオペレーションのあと、コピー先のリストにコピーされた各要素のインデックスは、コピー元のリストのインデックスと同じになります。 宛先リストのサイズは、ソース・リストのサイズ以上である必要があります。 大きい場合は、宛先リストの残りの要素に影響はありません。このメソッドは一次時間で動作します。
- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
dest
- コピー先のリスト。src
- コピー元のリスト。- 例外:
IndexOutOfBoundsException
- コピー先のリストがコピー元のリスト全体を格納するには小さすぎる場合。UnsupportedOperationException
- 宛先リストのlist-iteratorがset
操作をサポートしていない場合。
-
min
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll) 要素の自然順序付けに従って、指定されたコレクションの最小の要素を返します。 コレクション内のすべての要素は、Comparable
インタフェースを実装する必要があります。 さらに、コレクション内のすべての要素は「相互に比較可能」 (つまり、e1.compareTo(e2)
は、コレクション内の要素e1
およびe2
に対してClassCastException
をスローできません)である必要があります。このメソッドはコレクション全体で反復処理を行うので、コレクションのサイズに比例した時間が必要です。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
coll
- 最小の要素を決めるコレクション。- 戻り値:
- 要素の自然順序付けに従って、指定されたコレクションの最小の要素。
- 例外:
ClassCastException
- コレクションに相互に比較可能でない要素(たとえば、文字列と整数)がある場合。NoSuchElementException
- コレクションが空の場合。- 関連項目:
-
min
public static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp) 指定されたコンパレータが示す順序に従って、指定されたコレクションの最小の要素を返します。 コレクション内のすべての要素は、指定されたコンパレータ(つまり、comp.compare(e1, e2)
は、コレクション内の要素e1
およびe2
に対してClassCastException
をスローできません)によって「相互に比較可能」である必要があります。このメソッドはコレクション全体で反復処理を行うので、コレクションのサイズに比例した時間が必要です。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
coll
- 最小の要素を決めるコレクション。comp
- 最小の要素リストが決定されるコンパレータ。null
値は、要素の自然順序付けが使用されることを示す。- 戻り値:
- 指定されたコンパレータに従った、指定されたコレクションの最小の要素。
- 例外:
ClassCastException
- コレクションに、指定されたコンパレータで相互に比較できない要素がある場合。NoSuchElementException
- コレクションが空の場合。- 関連項目:
-
max
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) 要素の自然順序付けに従って、指定されたコレクションの最大の要素を返します。 コレクション内のすべての要素は、Comparable
インタフェースを実装する必要があります。 さらに、コレクション内のすべての要素は「相互に比較可能」 (つまり、e1.compareTo(e2)
は、コレクション内の要素e1
およびe2
に対してClassCastException
をスローできません)である必要があります。このメソッドはコレクション全体で反復処理を行うので、コレクションのサイズに比例した時間が必要です。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
coll
- 最大の要素を決めるコレクション。- 戻り値:
- 要素の自然順序付けに従って、指定されたコレクションの最大の要素。
- 例外:
ClassCastException
- コレクションに相互に比較可能でない要素(たとえば、文字列と整数)がある場合。NoSuchElementException
- コレクションが空の場合。- 関連項目:
-
max
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) 指定されたコンパレータが示す順序に従って、指定されたコレクションの最大の要素を返します。 コレクション内のすべての要素は、指定されたコンパレータ(つまり、comp.compare(e1, e2)
は、コレクション内の要素e1
およびe2
に対してClassCastException
をスローできません)によって「相互に比較可能」である必要があります。このメソッドはコレクション全体で反復処理を行うので、コレクションのサイズに比例した時間が必要です。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
coll
- 最大の要素を決めるコレクション。comp
- 最大の要素リストを決定するコンパレータ。null
値は、要素の自然順序付けが使用されることを示す。- 戻り値:
- 指定されたコンパレータに従った、指定されたコレクションの最大の要素。
- 例外:
ClassCastException
- コレクションに、指定されたコンパレータで相互に比較できない要素がある場合。NoSuchElementException
- コレクションが空の場合。- 関連項目:
-
rotate
public static void rotate(List<?> list, int distance) 指定されたリストの要素を、指定された距離により回転します。 このメソッドをコールした後、索引i
の要素は、0
とlist.size()-1
の間のi
のすべての値(これらを含む)について、以前に索引(i - distance)
modlist.size()
の要素になります。 このメソッドはリストのサイズには影響を及ぼしません。たとえば、
list
が[t, a, n, k, s]
で構成されているとします。Collections.rotate(list, 1)
(またはCollections.rotate(list, -4)
)の呼出し後、list
は[s, t, a, n, k]
を構成します。このメソッドをサブリストに有効に適用して、残りの要素の順序を保存しながら、リスト内の1つまたは複数の要素を移動することができます。 たとえば、次のidiomは、索引
j
の要素をk
(j
以上である必要があります)の位置に進めます: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
インタフェースを実装している場合、この実装では最初の要素を移動すべき位置に入れ替えます。次に、置き換えられた要素が最初の要素の位置にスワップされるまで、置き換えられた要素を移動すべき位置に繰り返し入れ替えます。 必要に応じて、回転が完了するまで、2番目の要素とそれに続く要素についてこのプロセスが繰り返されます。 指定したリストが大きく、RandomAccess
インタフェースを実装していない場合、この実装では、索引-distance mod size
に関する2つのサブリスト・ビューにリストが分割されます。 次に、reverse(List)
メソッドがそれぞれのサブリスト・ビューで呼び出され、最終的にはリスト全体で呼び出されます。 2つのアルゴリズムの詳細については、Jon Bentleyの『Programming Pearls』(Addison-Wesley, 1986)のセクション2.3を参照してください。- パラメータ:
list
- 回転されるリスト。distance
- リストを回転する距離。 この値には制約はありません。ゼロ、負またはlist.size()
より大きい値を指定できます。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。- 導入されたバージョン:
- 1.4
-
replaceAll
public static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) リスト内に出現する指定された値をすべてほかの値に置き換えます。 より正式には、(oldVal==null ? e==null : oldVal.equals(e))
のように、list
の各要素e
をnewVal
に置き換えます。 このメソッドはリストのサイズには影響を及ぼしません。- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- 置換が生じるリスト。oldVal
- 置換前の値。newVal
-oldVal
を置換する新しい値。- 戻り値:
true
:list
に1つ以上の要素e
((oldVal==null ? e==null : oldVal.equals(e))
など)が含まれている場合。- 例外:
UnsupportedOperationException
- 指定されたリストまたはそのリスト・イテレータがset
操作をサポートしていない場合。- 導入されたバージョン:
- 1.4
-
indexOfSubList
指定されたソース・リスト内で、指定されたターゲット・リストが最初に出現した位置の開始位置を返します。こうした出現がない場合は -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
指定されたソース・リスト内で、最後に出現した指定ターゲット・リストの開始位置を返します。こうした出現がない場合は -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 <T> Collection<T> unmodifiableCollection(Collection<? extends T> c) 指定されたコレクションの「変更不可能なビュー」を返します。 返されたコレクション"読み取り"に対する問合せ操作を指定されたコレクションに対して実行し、直接またはイテレータを介した返されたコレクションの変更を試行すると、UnsupportedOperationException
になります。返されたコレクションは、hashCodeオペレーションおよびequalsオペレーションを基となるコレクションに渡すことはなく、
Object
のequals
メソッドおよびhashCode
メソッドに依存します。 これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
c
- 変更不可能なビューが返されるコレクション。- 戻り値:
- 指定されたコレクションの変更不可能なビュー。
-
unmodifiableSequencedCollection
public static <T> SequencedCollection<T> unmodifiableSequencedCollection(SequencedCollection<? extends T> c) 指定されたSequencedCollection
の「変更不可能なビュー」を返します。 返されたコレクション"読み取り"に対する問合せ操作を指定されたコレクションに対して実行し、直接またはイテレータを介した返されたコレクションの変更を試行すると、UnsupportedOperationException
になります。返されたコレクションは、
hashCode
およびequals
操作をバッキング・コレクションに渡しませんが、Object
のequals
およびhashCode
メソッドに依存します。 これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
c
- 変更不可能なビューが返されるコレクション。- 戻り値:
- 指定されたコレクションの変更不可能なビュー。
- 導入されたバージョン:
- 21
-
unmodifiableSet
指定されたセットの「変更不可能なビュー」を返します。 返されたセット"読み取り"に対する問合せ操作を指定されたセットに対して実行し、直接またはイテレータを介して返されたセットを変更しようとすると、UnsupportedOperationException
になります。返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
T
- セット内のオブジェクトのクラス- パラメータ:
s
- 変更不可能なビューが返されるセット。- 戻り値:
- 指定されたセットの変更不可能なビュー。
-
unmodifiableSequencedSet
public static <T> SequencedSet<T> unmodifiableSequencedSet(SequencedSet<? extends T> s) 指定されたSequencedSet
の「変更不可能なビュー」を返します。 返されたセット"読み取り"に対する問合せ操作を指定されたセットに対して実行し、直接またはイテレータを介して返されたセットを変更しようとすると、UnsupportedOperationException
になります。返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
T
- セット内のオブジェクトのクラス- パラメータ:
s
- 変更不可能なビューが返されるセット。- 戻り値:
- 指定された順序セットの修正不可能なビュー。
- 導入されたバージョン:
- 21
-
unmodifiableSortedSet
指定されたソート・セットの「変更不可能なビュー」を返します。 返されたソート・セットでのクエリー・オペレーションは、指定されたソート・セットを直接読み込みます。 直接、イテレータ経由で、またはそのsubSet
、headSet
またはtailSet
ビューを介して、返されたソート済セットを変更しようとすると、UnsupportedOperationException
になります。返されたソート・セットは、指定されたソート・セットが直列化可能の場合は直列化可能です。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
T
- セット内のオブジェクトのクラス- パラメータ:
s
- 変更不可能なビューが返されるソート・セット。- 戻り値:
- 指定されたソート・セットの変更不可能なビュー。
-
unmodifiableList
指定されたリストの「変更不可能なビュー」を返します。 返されたリスト"読み取り"に対する問合せ操作が指定のリストに対して実行され、直接またはイテレータを介して返されたリストを変更しようとすると、UnsupportedOperationException
になります。返されたリストは、指定されたリストが直列化可能の場合にだけ直列化可能になります。 同様に、指定されたリストが
RandomAccess
を実装する場合にだけ、返されたリストはこれを実装します。- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- 変更不可能なビューが返されるリスト。- 戻り値:
- 指定されたリストの変更不可能なビュー。
-
unmodifiableMap
指定されたマップの「変更不可能なビュー」を返します。 返されたマップ"読み取り"に対する問合せ操作が指定のマップに対して実行され、直接ビューまたはそのコレクション・ビューを介して返されたマップを変更しようとすると、UnsupportedOperationException
になります。返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 変更不可能なビューが返されるマップ。- 戻り値:
- 指定されたマップの変更不可能なビュー。
-
unmodifiableSequencedMap
public static <K,V> SequencedMap<K,V> unmodifiableSequencedMap(SequencedMap<? extends K, ? extends V> m) 指定されたSequencedMap
の「変更不可能なビュー」を返します。 返されたマップ"読み取り"に対する問合せ操作が指定のマップに対して実行され、直接ビューまたはそのコレクション・ビューを介して返されたマップを変更しようとすると、UnsupportedOperationException
になります。返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 変更不可能なビューが返されるマップ。- 戻り値:
- 指定されたマップの変更不可能なビュー。
- 導入されたバージョン:
- 21
-
unmodifiableSortedMap
指定されたソート・マップの「変更不可能なビュー」を返します。 返されたソート・マップでのクエリー・オペレーションは、指定されたソート・マップを直接読み込みます。 返されたソート済マップを、コレクション・ビューを介して、またはそのsubMap
、headMap
またはtailMap
ビューを介して変更しようとすると、UnsupportedOperationException
になります。返されたソート・マップは、指定されたソート・マップが直列化可能の場合は直列化可能です。
- 実装上のノート:
- 引数がすでに変更可能でない場合、このメソッドはその引数を返します。
- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 変更不可能なビューが返されるソート・マップ。- 戻り値:
- 指定されたソート・マップの変更不可能なビュー。
-
synchronizedCollection
public static <T> Collection<T> synchronizedCollection(Collection<T> c) 指定されたコレクションに連動する同期(スレッドセーフな)コレクションを返します。 確実に直列アクセスを実現するには、基となるコレクションへのアクセスはすべて返されたコレクションを介して行う必要があります。Iterator
、Spliterator
、またはStream
を介して、返されたコレクションのトラバースを行う場合、ユーザーは手動でその同期をとる必要があります。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メソッドに依存します。 これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。
- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
c
- 同期コレクションに「ラップ」されるコレクション。- 戻り値:
- 指定されたコレクションの同期ビュー。
-
synchronizedSet
指定されたセットに連動する同期(スレッドセーフな)セットを返します。 確実に直列アクセスを実現するには、基となるセットへのアクセスはすべて返されたセットを介して行う必要があります。Iterator
、Spliterator
、またはStream
を介して、返されたコレクションのトラバースを行う場合、ユーザーは手動でその同期をとる必要があります。Set s = Collections.synchronizedSet(new HashSet()); ... synchronized (s) { Iterator i = s.iterator(); // Must be in the synchronized block while (i.hasNext()) foo(i.next()); }
これを行わない場合、動作は保証されません。返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。
- 型パラメータ:
T
- セット内のオブジェクトのクラス- パラメータ:
s
- 同期セットに「ラップ」されるセット。- 戻り値:
- 指定されたセットの同期ビュー。
-
synchronizedSortedSet
指定されたソート・セットに連動する同期(スレッドセーフな)ソート・セットを返します。 確実に直列アクセスを実現するには、基となるソート・セットへのアクセスはすべて、返されたソート・セット(またはそのビュー)を介して行う必要があります。subSet
、headSet
、またはtailSet
ビューのいずれかをIterator
、Spliterator
またはStream
経由でトラバースするときに、返されたソート・セットを手動で同期させることが不可欠です:SortedSet s = Collections.synchronizedSortedSet(new TreeSet()); ... synchronized (s) { Iterator i = s.iterator(); // Must be in the synchronized block while (i.hasNext()) foo(i.next()); }
またはSortedSet s = Collections.synchronizedSortedSet(new TreeSet()); 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()); }
これを行わない場合、動作は保証されません。返されたソート・セットは、指定されたソート・セットが直列化可能の場合は直列化可能です。
- 型パラメータ:
T
- セット内のオブジェクトのクラス- パラメータ:
s
- 同期ソート・セットに「ラップ」されるソート・セット。- 戻り値:
- 指定されたソート・セットの同期ビュー。
-
synchronizedList
指定されたリストに連動する同期(スレッドセーフな)リストを返します。 確実に直列アクセスを実現するには、基になるリストへのアクセスはすべて、返されたリストを介して行う必要があります。Iterator
、Spliterator
またはStream
を使用してトラバースするときに、返されたリストを手動で同期させることが不可欠です:List list = Collections.synchronizedList(new ArrayList()); ... synchronized (list) { Iterator i = list.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next()); }
これを行わない場合、動作は保証されません。返されたリストは、指定されたリストが直列化可能の場合にだけ直列化可能になります。
- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
list
- 同期リストに「ラップ」されるリスト。- 戻り値:
- 指定されたリストの同期ビュー。
-
synchronizedMap
指定されたマップに連動する同期(スレッドセーフな)マップを返します。 確実に直列アクセスを実現するには、基になるマップへのアクセスはすべて、返されたマップを介して行う必要があります。Iterator
、Spliterator
またはStream
を使用してコレクション・ビューのいずれかをトラバースするときに、返されたマップでユーザーが手動で同期することが不可欠です: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()); }
これを行わない場合、動作は保証されません。返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 同期マップに「ラップ」されるマップ。- 戻り値:
- 指定されたマップの同期ビュー。
-
synchronizedSortedMap
指定されたソート・マップに連動する同期(スレッドセーフな)ソート・マップを返します。 確実に直列アクセスを実現するには、基になるソート・マップへのアクセスはすべて、返されたソート・マップ(またはそのビュー)を介して行う必要があります。Iterator
、Spliterator
またはStream
を介して、コレクション・ビュー、またはそのsubMap
、headMap
またはtailMap
ビューのいずれかのコレクション・ビューを移動する場合は、返されたソート済マップでユーザーが手動で同期する必要があります:SortedMap m = Collections.synchronizedSortedMap(new TreeMap()); ... 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 TreeMap()); 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 = s2.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next()); }
これを行わない場合、動作は保証されません。返されたソート・マップは、指定されたソート・マップが直列化可能の場合は直列化可能です。
- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 同期ソート・マップに「ラップ」されるソート・マップ。- 戻り値:
- 指定されたソート・マップの同期ビュー。
-
checkedCollection
public static <E> Collection<E> checkedCollection(Collection<E> c, Class<E> type) 指定されたコレクションの、動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastException
がスローされます。 動的に型保証されたビューが生成される前はコレクションに不正な型の要素が含まれず、後続のコレクションへのアクセスがすべてこのビューを介して行われる場合、コレクションには不正な型の要素が含まれないことが保証されます。言語内のジェネリック・メカニズムによりコンパイル時(静的)の型チェックが提供されますが、チェックされないキャストを使用してこのメカニズムを無効にすることはできません。 通常、この種のチェックされない操作すべてでコンパイラが警告を発行するため、これは問題にはなりません。 ただし、時として、静的な型チェックだけでは不十分な場合があります。 たとえば、コレクションがサード・パーティのライブラリに渡されるが、ライブラリ・コードが不正な型の要素を挿入してコレクションを破壊してしまうことがあってはならない場合などです。
動的に型保証されたビューの別の用途は、デバッグです。 プログラムが
ClassCastException
で失敗し、不正な型の要素がパラメータ化されたコレクションに入れられたことを示す場合を考えましょう。 残念なことに、不正な要素が挿入されるとこの例外が常に発生する可能性があるため、この例外から問題のソースに関する情報をほとんどまたはまったく得ることができません。 問題が再現可能な場合は、プログラムを変更して動的な型保証されたビューでコレクションを一時的にラップすることで、ソースをすばやく判定できます。 たとえば、宣言Collection<String> c = new HashSet<>();
Collection<String> c = Collections.checkedCollection( new HashSet<>(), String.class);
返されたコレクションは、hashCodeオペレーションおよびequalsオペレーションを基となるコレクションに渡すことはなく、
Object
のequals
メソッドおよびhashCode
メソッドに依存します。 これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。返されたコレクションは、指定されたコレクションが直列化可能の場合は直列化可能です。
null
はどの参照型の値ともみなされるため、基になるコレクションがnull要素の挿入を許可するときは必ず、返されるコレクションもこれを許可します。- 型パラメータ:
E
- コレクション内のオブジェクトのクラス- パラメータ:
c
- 動的に型保証されたビューが返されるコレクションtype
-c
が保持することを許された要素の型- 戻り値:
- 指定されたコレクションの、動的に型保証されたビュー
- 導入されたバージョン:
- 1.5
-
checkedQueue
指定されたキューの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastException
がスローされます。 動的に型保証されたビューが生成される前はキューに不正な型の要素が含まれず、キューへの後続のアクセスがすべてこのビューを介して行われる場合、キューには不正な型の要素が含まれないことが保証されます。動的に型保証されたビューの使用については、
checkedCollection
メソッドのドキュメントを参照してください。指定されたキューが直列化可能の場合は、返されるキューも直列化可能になります。
null
はどの参照型の値ともみなされるため、基になるキューがnull
要素の挿入を許可するときは必ず、返されるキューもこれを許可します。- 型パラメータ:
E
- キュー内のオブジェクトのクラス- パラメータ:
queue
- 動的に型保証されたビューが返されるキューtype
-queue
が保持することを許された要素の型- 戻り値:
- 指定されたキューの動的に型保証されたビュー
- 導入されたバージョン:
- 1.8
-
checkedSet
指定されたセットの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastException
がスローされます。 動的に型保証されたビューが生成される前はセットに不正な型の要素が含まれず、セットへの後続のアクセスがすべてこのビューを介して行われる場合、セットには不正な型の要素が含まれないことが保証されます。動的に型保証されたビューの使用については、
checkedCollection
メソッドのドキュメントを参照してください。返されるセットは、指定されたセットが直列化可能の場合に直列化可能になります。
null
はどの参照型の値ともみなされるため、基になるセットがnull要素の挿入を許可するときは必ず、返されるセットもこれを許可します。- 型パラメータ:
E
- セット内のオブジェクトのクラス- パラメータ:
s
- 動的に型保証されたビューが返されるセットtype
-s
が保持することを許された要素の型- 戻り値:
- 指定されたセットの動的に型保証されたビュー
- 導入されたバージョン:
- 1.5
-
checkedSortedSet
指定されたソート・セットの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastException
がスローされます。 動的に型保証されたビューが生成される前はソート・セットに不正な型の要素が含まれず、ソート・セットへの後続のアクセスがすべてこのビューを介して行われる場合、ソート・セットには不正な型の要素が含まれないことが保証されます。動的に型保証されたビューの使用については、
checkedCollection
メソッドのドキュメントを参照してください。返されたソート・セットは、指定されたソート・セットが直列化可能の場合は直列化可能です。
null
はどの参照型の値ともみなされるため、基になるソート・セットがnull要素の挿入を許可するときは必ず、返されるソート・セットもこれを許可します。- 型パラメータ:
E
- セット内のオブジェクトのクラス- パラメータ:
s
- 動的に型保証されたビューが返されるソート・セットtype
-s
が保持することを許された要素の型- 戻り値:
- 指定されたソート・セットの動的に型保証されたビュー
- 導入されたバージョン:
- 1.5
-
checkedList
指定されたリストの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastException
がスローされます。 動的に型保証されたビューが生成される前はリストに不正な型の要素が含まれず、リストへの後続のアクセスがすべてこのビューを介して行われる場合、リストには不正な型の要素が含まれないことが保証されます。動的に型保証されたビューの使用については、
checkedCollection
メソッドのドキュメントを参照してください。返されたリストは、指定されたリストが直列化可能の場合にだけ直列化可能になります。
null
はどの参照型の値ともみなされるため、基になるリストがnull要素の挿入を許可するときは必ず、返されるリストもこれを許可します。- 型パラメータ:
E
- リスト内のオブジェクトのクラス- パラメータ:
list
- 動的に型保証されたビューが返されるリストtype
-list
が保持することを許された要素の型- 戻り値:
- 指定されたリストの動的に型保証されたビュー
- 導入されたバージョン:
- 1.5
-
checkedMap
指定されたマップの動的に型保証されたビューを返します。 キーまたは値が不正な型を保持するマッピングを挿入しようとすると、すぐにClassCastException
がスローされます。 同様に、キーに現在関連付けられている値を変更しようとすると、変更がマップ自体を介して試みられるか、マップのentry set
ビューから取得されたMap.Entry
インスタンスを介して試みられるかにかかわらず、すぐにClassCastException
がスローされます。動的に型保証されたビューが生成される前に、不正な型のキーまたは値がマップに含まれず、マップへの後続のアクセスがすべてビュー(またはコレクション・ビューの1つ)を介して行われる場合、マップに不正な型のキーや値が含まれないことが保証されます。
動的に型保証されたビューの使用については、
checkedCollection
メソッドのドキュメントを参照してください。返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
null
はどの参照型の値ともみなされるため、基になるマップがnullのキーまたは値の挿入を許可するときは必ず、返されるマップも許可します。- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 動的に型保証されたビューが返されるマップkeyType
-m
が保持することを許されたキーの型valueType
-m
が保持することを許された値の型- 戻り値:
- 指定されたマップの動的に型保証されたビュー
- 導入されたバージョン:
- 1.5
-
checkedSortedMap
public static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K, V> m, Class<K> keyType, Class<V> valueType) 指定されたソート・マップの動的に型保証されたビューを返します。 キーまたは値が不正な型を保持するマッピングを挿入しようとすると、すぐにClassCastException
がスローされます。 同様に、キーに現在関連付けられている値を変更しようとすると、変更がマップ自体を介して試みられるか、マップのentry set
ビューから取得されたMap.Entry
インスタンスを介して試みられるかにかかわらず、すぐにClassCastException
がスローされます。動的に型保証されたビューが生成される前に、不正な型のキーまたは値がマップに含まれず、マップへの後続のアクセスがすべてビュー(またはコレクション・ビューの1つ)を介して行われる場合、マップに不正な型のキーや値が含まれないことが保証されます。
動的に型保証されたビューの使用については、
checkedCollection
メソッドのドキュメントを参照してください。返されたマップは、指定されたマップが直列化可能の場合は直列化可能です。
null
はどの参照型の値ともみなされるため、基になるマップがnullのキーまたは値の挿入を許可するときは必ず、返されるマップも許可します。- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
m
- 動的に型保証されたビューが返されるマップkeyType
-m
が保持することを許されたキーの型valueType
-m
が保持することを許された値の型- 戻り値:
- 指定されたマップの動的に型保証されたビュー
- 導入されたバージョン:
- 1.5
-
emptyIterator
public static <T> Iterator<T> emptyIterator()要素が1つも含まれていないイテレータを返します。 より正確には、hasNext
は常にfalse
を返します。next
は常にNoSuchElementException
をスローします。remove
は常にIllegalStateException
をスローします。
複数の呼び出しから同じオブジェクトを返すために、このメソッドの実装は許可されていますが、必須ではありません。
- 型パラメータ:
T
- そのイテレータに要素が含まれているとした場合の、その要素の型- 戻り値:
- 空のイテレータ
- 導入されたバージョン:
- 1.7
-
emptyListIterator
public static <T> ListIterator<T> emptyListIterator()要素が1つも含まれていないリスト・イテレータを返します。 より正確には、hasNext
およびhasPrevious
は常にfalse
を返します。next
およびprevious
は常にNoSuchElementException
をスローします。remove
およびset
は常にIllegalStateException
をスローします。add
は常にUnsupportedOperationException
をスローします。nextIndex
は常に0
を返します。previousIndex
は常に-1
を返します。
複数の呼び出しから同じオブジェクトを返すために、このメソッドの実装は許可されていますが、必須ではありません。
- 型パラメータ:
T
- そのイテレータに要素が含まれているとした場合の、その要素の型- 戻り値:
- 空のリスト・イテレータ
- 導入されたバージョン:
- 1.7
-
emptyEnumeration
public static <T> Enumeration<T> emptyEnumeration()要素が1つも含まれていない列挙を返します。 より正確には、hasMoreElements
は常にfalse
を返します。-
nextElement
は常にNoSuchElementException
をスローします。
複数の呼び出しから同じオブジェクトを返すために、このメソッドの実装は許可されていますが、必須ではありません。
- 型パラメータ:
T
- 列挙内のオブジェクトのクラス- 戻り値:
- 空の列挙
- 導入されたバージョン:
- 1.7
-
emptySet
public static final <T> Set<T> emptySet()空のセット(不変)を返します。 このセットは直列化が可能です。 同様の名前が付けられたフィールドとは異なり、このメソッドはパラメータ化されます。次に、空のセットを取得するための型保証された方法の例を示します。
Set<String> s = Collections.emptySet();
- 実装上のノート:
- このメソッドの実装では、呼出しごとに個別の
Set
オブジェクトを作成する必要はありません。 このメソッドは同様の名前が付けられたフィールドを使用した比較可能なコストがあるようなものです。 (このメソッドとは異なり、フィールドは型保証しない。) - 型パラメータ:
T
- セット内のオブジェクトのクラス- 戻り値:
- 空のセット
- 導入されたバージョン:
- 1.5
- 関連項目:
-
emptySortedSet
public static <E> SortedSet<E> emptySortedSet()空の格納されたセット(不変)を返します。 このセットは直列化が可能です。次に、空のソート・セットを取得するための型保証された方法の例を示します。
SortedSet<String> s = Collections.emptySortedSet();
- 実装上のノート:
- このメソッドの実装では、呼出しごとに個別の
SortedSet
オブジェクトを作成する必要はありません。 - 型パラメータ:
E
- そのセットに要素が含まれているとした場合の、その要素の型- 戻り値:
- 空のソート・セット
- 導入されたバージョン:
- 1.8
-
emptyList
public static final <T> List<T> emptyList()空のリスト(不変)を返します。 このリストは直列化可能です。次に、空のリストを取得するための型保証された方法の例を示します。
List<String> s = Collections.emptyList();
- 実装上のノート:
- このメソッドの実装では、コールごとに個別の
List
オブジェクトを作成する必要はありません。 このメソッドは同様の名前が付けられたフィールドを使用した比較可能なコストがあるようなものです。 (このメソッドとは異なり、フィールドは型保証しない。) - 型パラメータ:
T
- そのリストに要素が含まれているとした場合の、その要素の型- 戻り値:
- 空の不変のリスト
- 導入されたバージョン:
- 1.5
- 関連項目:
-
emptyMap
public static final <K,V> Map<K,V> emptyMap()空のマップ(不変)を返します。 このマップは直列化可能です。次に、空のマップを取得するための型保証された方法の例を示します。
Map<String, Date> s = Collections.emptyMap();
- 実装上のノート:
- このメソッドの実装では、呼出しごとに個別の
Map
オブジェクトを作成する必要はありません。 このメソッドは同様の名前が付けられたフィールドを使用した比較可能なコストがあるようなものです。 (このメソッドとは異なり、フィールドは型保証しない。) - 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- 戻り値:
- 空のマップ
- 導入されたバージョン:
- 1.5
- 関連項目:
-
emptySortedMap
public static final <K,V> SortedMap<K,V> emptySortedMap()空の格納されたマップ(不変)を返します。 このマップは直列化可能です。次に、空のマップを取得するための型保証された方法の例を示します。
SortedMap<String, Date> s = Collections.emptySortedMap();
- 実装上のノート:
- このメソッドの実装では、呼出しごとに個別の
SortedMap
オブジェクトを作成する必要はありません。 - 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- 戻り値:
- 空のソート・マップ
- 導入されたバージョン:
- 1.8
-
singleton
public static <T> Set<T> singleton(T o) 指定されたオブジェクトだけを格納している不変のセットを返します。 返されるセットは直列化可能です。- 型パラメータ:
T
- セット内のオブジェクトのクラス- パラメータ:
o
- 返されるセットに格納される唯一のオブジェクト。- 戻り値:
- 指定されたオブジェクトだけを格納している不変のセット。
-
singletonList
public static <T> List<T> singletonList(T o) 指定されたオブジェクトだけを格納している不変のリストを返します。 返されるリストは直列化可能です。- 型パラメータ:
T
- リスト内のオブジェクトのクラス- パラメータ:
o
- 返されるリストに格納される唯一のオブジェクト。- 戻り値:
- 指定されたオブジェクトだけを格納している不変のリスト。
- 導入されたバージョン:
- 1.3
-
singletonMap
public static <K,V> Map<K,V> singletonMap(K key, V value) 指定された値に指定されたキーだけをマッピングする不変のマップを返します。 返されるマップは直列化可能です。- 型パラメータ:
K
- マップ・キーのクラスV
- マップ値のクラス- パラメータ:
key
- 返されるマップに格納される唯一のキー。value
- 返されるマップがkey
をマップする値。- 戻り値:
- 指定したキーと値のマッピングだけが格納される不変のマップ。
- 導入されたバージョン:
- 1.3
-
nCopies
public static <T> List<T> nCopies(int n, T o) 指定されたオブジェクトのn
コピーで構成される不変リストを返します。 新しく割り当てられたデータ・オブジェクトは、データ・オブジェクトへの1つの参照を持つ小さなオブジェクトです。 このメソッドは、List.addAll
メソッドと組み合せてリストを拡張する場合に便利です。 返されるリストは直列化可能です。- 型パラメータ:
T
- コピー対象のオブジェクトおよび返されるリスト内のオブジェクトのクラス。- パラメータ:
n
- 返されるリストの要素数。o
- 返されるリストに繰返し現れる要素。- 戻り値:
- 指定されたオブジェクトの
n
コピーで構成される不変リスト。 - 例外:
IllegalArgumentException
-n < 0
の場合- 関連項目:
-
reverseOrder
public static <T> Comparator<T> reverseOrder()Comparable
インタフェースを実装するオブジェクトのコレクションで自然順序付けの逆を義務付けるコンパレータを返します。 自然順序付けとは、オブジェクト自身のcompareTo
メソッドが示す順序のことです。 これにより、Comparable
インタフェースを実装するオブジェクトのコレクション(または配列)を簡単に逆自然順序でソート(または保守)できます。 たとえば、a
が文字列の配列であると仮定します。 次に、Arrays.sort(a, Collections.reverseOrder());
逆引きの辞書編集順(アルファベット順)で配列をソートします。返されるコンパレータは直列化可能です。
- APIのノート:
- このメソッドは、要素を逆の順序でソートするのに適した
Comparator
を返します。 順序付けされたコレクションの逆順のviewを取得するには、SequencedCollection.reversed
メソッドを使用します。 または、順序付けされたマップの逆順のviewを取得するには、SequencedMap.reversed
メソッドを使用します。 - 型パラメータ:
T
- コンパレータによって比較されるオブジェクトのクラス- 戻り値:
- 「自然順序付け」の逆を、
Comparable
インタフェースを実装するオブジェクトのコレクションに課すコンパレータ。 - 関連項目:
-
reverseOrder
public static <T> Comparator<T> reverseOrder(Comparator<T> cmp) 指定されたコンパレータの逆順を義務付けるコンパレータを返します。 指定されたコンパレータがnull
の場合、このメソッドはreverseOrder()
と等価になります(つまり、Comparableインタフェースを実装するオブジェクトのコレクションに逆の自然順序を義務付けるコンパレータを返す)。返されるコンパレータは直列化可能です(指定されたコンパレータも直列化可能であるか
null
の場合)。- APIのノート:
- このメソッドは、要素を逆の順序でソートするのに適した
Comparator
を返します。 順序付けされたコレクションの逆順のviewを取得するには、SequencedCollection.reversed
メソッドを使用します。 または、順序付けされたマップの逆順のviewを取得するには、SequencedMap.reversed
メソッドを使用します。 - 型パラメータ:
T
- コンパレータによって比較されるオブジェクトのクラス- パラメータ:
cmp
- 返されるコンパレータによってその順序が逆になるコンパレータ、またはnull
- 戻り値:
- 指定されたコンパレータの逆順を義務付けるコンパレータ。
- 導入されたバージョン:
- 1.5
-
enumeration
public static <T> Enumeration<T> enumeration(Collection<T> c) 指定されたコレクションの列挙を返します。 コレクションは、列挙を必要とする従来のAPIとの相互運用性を提供します。Enumeration.asIterator()
の呼出しから戻されたイテレータは、指定されたコレクションからの要素の削除をサポートしていません。 これは、返される列挙の機能を意図せずに増やすことを避けるために必要です。- 型パラメータ:
T
- コレクション内のオブジェクトのクラス- パラメータ:
c
- 列挙が返されるコレクション。- 戻り値:
- 指定されたコレクションの列挙。
- 関連項目:
-
list
public static <T> ArrayList<T> list(Enumeration<T> e) 指定された列挙により返された要素を含む配列リストを、返された順番で返します。 このメソッドでは、列挙を返す従来のAPIと、コレクションを必要とする新規APIとの相互運用性を実現しています。- 型パラメータ:
T
- 列挙によって返されるオブジェクトのクラス- パラメータ:
e
- 返される配列リストの要素を提供する列挙- 戻り値:
- 指定された列挙により返される要素を含む配列リスト。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
frequency
public static int frequency(Collection<?> c, Object o) 指定されたコレクション内で、指定されたオブジェクトと等価な要素の数を返します。 より正式には、Objects.equals(o, e)
のようにコレクション内の要素e
の数を返します。- パラメータ:
c
-o
の頻度を決定するコレクションo
- 頻度を判定するオブジェクト- 戻り値:
o
に等しいc
内の要素の数- 例外:
NullPointerException
-c
がnullである場合- 導入されたバージョン:
- 1.5
-
disjoint
public static boolean disjoint(Collection<?> c1, Collection<?> c2) 指定された2つのコレクションに共通の要素が存在しない場合、true
を返します。Collection
の汎用規約に準拠しないコレクションに対してこのメソッドを使用する場合は、注意が必要です。 実装が、一方のコレクションに対して処理を繰返し実行し、他方のコレクション内に含まれるかどうかをテストする(または等価な計算を実行する)場合があります。 一方のコレクションが非標準の等価テストを使用する場合(順序が等価との互換性を持たないSortedSet
や、IdentityHashMap
のキー・セットのように)、両方のコレクションで同じ非標準の等価テストを使用する必要があります。そうでない場合のこのメソッドの結果は定義されていません。格納できる要素に制限があるコレクションを使用する場合も、注意が必要です。 コレクションの実装では、不適当だと判断される要素を含む任意の操作に対して、例外をスローすることが許可されます。 完全な安全性を確保するには、指定されたコレクションには、両方のコレクションで適当な要素となる要素のみを含めるようにする必要があります。
両方のパラメータ内で同じコレクションを渡すことは許容されています。この場合、コレクションが空の場合にのみ、メソッドは
true
を返します。- パラメータ:
c1
- コレクションc2
- コレクション- 戻り値:
- 指定された2つのコレクションに共通の要素が存在しない場合、
true
。 - 例外:
NullPointerException
- いずれかのコレクションがnull
の場合。NullPointerException
- あるコレクションにnull
要素が含まれるが、別のコレクションではnull
が適当な要素でない場合(オプション)ClassCastException
- あるコレクションに含まれる要素の型が、別のコレクションでは不適当な場合(オプション)- 導入されたバージョン:
- 1.5
-
addAll
@SafeVarargs public static <T> boolean addAll(Collection<? super T> c, T... elements) 指定されたすべての要素を指定されたコレクションに追加します。 追加される要素は個別に指定されるか配列として指定されます。 このコンビニエンス・メソッドの動作は、c.addAll(Collections.unmodifiableList(Arrays.asList(elements)))
の動作と似ています。要素を個別に指定する場合、このメソッドでは、次の例のように、数種類の要素を既存のコレクションに簡単に追加できます。
Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
- 型パラメータ:
T
- 追加する要素およびコレクションの要素のクラス- パラメータ:
c
-elements
を挿入するコレクションelements
-c
に挿入する要素- 戻り値:
- コールの結果としてコレクションが変更された場合、
true
- 例外:
UnsupportedOperationException
-c
がadd
操作をサポートしていない場合NullPointerException
-elements
に1つ以上のnull値が含まれ、c
でnull要素が許可されていない場合、またはc
またはelements
がnull
の場合IllegalArgumentException
-elements
内の値の一部のプロパティによってc
への追加が禁止されている場合- 導入されたバージョン:
- 1.5
- 関連項目:
-
newSetFromMap
指定されたマップに連動するセットを返します。 結果として得られるセットには、その連動するマップと同じ順序、並行性、およびパフォーマンス特性が表示されます。 このファクトリ・メソッドは、本質的に、Map
実装に対応するSet
実装を提供します。HashMap
やTreeMap
など対応するSet
実装がすでにあるMap
実装では、このメソッドを使用する必要はありません。このメソッドによって返されるセットで各メソッドを呼び出すと、バッキング・マップまたはその
keySet
ビューで1つのメソッド呼出しが発生しますが、1つの例外があります。addAll
メソッドは、バッキング・マップで一連のput
呼出しとして実装されます。指定されたマップは、このメソッドが呼び出された時点では空でなければならず、このメソッドの終了後は直接アクセスすることはできません。 これらの条件は、次のコードの抜粋に示すように、マップが空の状態で作成され、このメソッドに直接渡され、マップへの参照が保持されない場合に保証されます。
Set<Object> weakHashSet = Collections.newSetFromMap( new WeakHashMap<Object, Boolean>());
- 型パラメータ:
E
- マップ・キーおよび返されるセット内のオブジェクトのクラス- パラメータ:
map
- 基になるマップ- 戻り値:
- マップに連動しているセット
- 例外:
IllegalArgumentException
-map
が空でない場合- 導入されたバージョン:
- 1.6
-
newSequencedSetFromMap
public static <E> SequencedSet<E> newSequencedSetFromMap(SequencedMap<E, Boolean> map) 指定されたマップによってバックアップされたシーケンス・セットを返します。 結果として得られるセットには、その連動するマップと同じ順序、並行性、およびパフォーマンス特性が表示されます。 本質的には、このファクトリ・メソッドは、SequencedMap
実装に対応するSequencedSet
実装を提供します。このメソッドによって返されるセットで各メソッドを呼び出すと、バッキング・マップまたはその
keySet
ビューで1つのメソッド呼出しが発生しますが、1つの例外があります。addAll
メソッドは、バッキング・マップで一連のput
呼出しとして実装されます。指定されたマップは、このメソッドが呼び出された時点では空でなければならず、このメソッドの終了後は直接アクセスすることはできません。 これらの条件は、マップが空で作成され、このメソッドに直接渡され、マップへの参照が保持されない場合に保証されます。
- APIのノート:
- 次のコード例では、
LinkedHashMap
からSequencedSet
を作成します。 これは、LinkedHashSet
では不可能な削除ポリシーを提供するためにマップのremoveEldestEntry
がオーバーライドされるという点で、LinkedHashSet
とは異なります。SequencedSet<String> set = Collections.newSequencedSetFromMap( new LinkedHashMap<String, Boolean>() { protected boolean removeEldestEntry(Map.Entry<String, Boolean> e) { return this.size() > 5; } });
- 型パラメータ:
E
- マップ・キーおよび返されるセット内のオブジェクトのクラス- パラメータ:
map
- 基になるマップ- 戻り値:
- マップに連動しているセット
- 例外:
IllegalArgumentException
-map
が空でない場合- 導入されたバージョン:
- 21
-
asLifoQueue
Deque
のビューを後入れ先出し(Lifo)のQueue
として返します。 メソッドadd
はpush
にマップされ、remove
はpop
にマップされます。以下同様です。 このビューは、Queue
を必要とするメソッドを使用するが、Lifo順序付けが必要な場合に役立ちます。このメソッドによって返されるキューでのそれぞれのメソッド呼出しによって、1つの例外を除き、基になる両端キューでメソッド呼出しが1つだけ発生します。
addAll
メソッドは、基になる両端キューの一連のaddFirst
呼び出しとして実装されます。- APIのノート:
- このメソッドは、特定の操作の意味を反転させるビューを提供しますが、検出順序を逆にしません。 逆順のビューを取得するには、
Deque.reversed
メソッドを使用します。 - 型パラメータ:
T
- 両端キュー内のオブジェクトのクラス- パラメータ:
deque
- 両端キュー- 戻り値:
- キュー
- 導入されたバージョン:
- 1.6
-