モジュール java.base
パッケージ java.util

クラスCollections

java.lang.Object
java.util.Collections

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

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

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

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

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.2
関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final List
    空のリストです(不変)。
    static final Map
    空のマップです(不変)。
    static final Set
    空のセットです(不変)。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static <T> boolean
    addAll(Collection<? super T> c, T... elements)
    指定されたすべての要素を指定されたコレクションに追加します。
    static <T> Queue<T>
    asLifoQueue(Deque<T> deque)
    Dequeのビューを後入れ先出し(Lifo)のQueueとして返します。
    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>
    指定されたコレクションの、動的に型保証されたビューを返します。
    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>
    指定されたナビゲート可能なセットの動的に型保証されたビューを返します。
    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>
    指定されたソート・セットの動的に型保証されたビューを返します。
    static <T> void
    copy(List<? super T> dest, List<? extends T> src)
    あるリストから別のリストにすべての要素をコピーします。
    static boolean
    指定された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>
    空のマップ(不変)を返します。
    static final <K, V> NavigableMap<K,V>
    空のナビゲート可能なマップ(不変)を返します。
    static <E> NavigableSet<E>
    空のナビゲート可能なセット(不変)を返します。
    static final <T> Set<T>
    空のセット(不変)を返します。
    static final <K, V> SortedMap<K,V>
    空の格納されたマップ(不変)を返します。
    static <E> SortedSet<E>
    空の格納されたセット(不変)を返します。
    static <T> Enumeration<T>
    指定されたコレクションの列挙を返します。
    static <T> void
    fill(List<? super T> list, T obj)
    指定されたリストのすべての要素を指定された要素で置き換えます。
    static int
    指定されたコレクション内で、指定されたオブジェクトと等価な要素の数を返します。
    static int
    indexOfSubList(List<?> source, List<?> target)
    指定されたソース・リスト内で、指定されたターゲット・リストが最初に出現した位置の開始位置を返します。こうした出現がない場合は -1を返します。
    static int
    lastIndexOfSubList(List<?> source, List<?> target)
    指定されたソース・リスト内で、最後に出現した指定ターゲット・リストの開始位置を返します。こうした出現がない場合は -1を返します。
    static <T> ArrayList<T>
    指定された列挙により返された要素を含む配列リストを、返された順番で返します。
    static <T extends Object & Comparable<? super T>>
    T
    max(Collection<? extends T> coll)
    要素の自然順序付けに従って、指定されたコレクションの最大の要素を返します。
    static <T> T
    max(Collection<? extends T> coll, Comparator<? super T> comp)
    指定されたコンパレータが示す順序に従って、指定されたコレクションの最大の要素を返します。
    static <T extends Object & Comparable<? super T>>
    T
    min(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> Set<E>
    指定されたマップに連動するセットを返します。
    static <T> boolean
    replaceAll(List<T> list, T oldVal, T newVal)
    リスト内に出現する指定された値をすべてほかの値に置き換えます。
    static void
    reverse(List<?> list)
    指定されたリストの要素の順序を逆にします。
    static <T> Comparator<T>
    Comparableインタフェースを実装するオブジェクトのコレクションで自然順序付けの逆を義務付けるコンパレータを返します。
    static <T> Comparator<T>
    指定されたコンパレータの逆順を義務付けるコンパレータを返します。
    static void
    rotate(List<?> list, int distance)
    指定されたリストの要素を、指定された距離により回転します。
    static void
    shuffle(List<?> list)
    デフォルトの乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。
    static void
    shuffle(List<?> list, Random rnd)
    指定された乱数発生の元を使用して、指定されたリストの順序を無作為に入れ替えます。
    static <T> Set<T>
    singleton(T o)
    指定されたオブジェクトだけを格納している不変のセットを返します。
    static <T> List<T>
    指定されたオブジェクトだけを格納している不変のリストを返します。
    static <K, V> Map<K,V>
    singletonMap(K key, V value)
    指定された値に指定されたキーだけをマッピングする不変のマップを返します。
    static <T extends Comparable<? super T>>
    void
    sort(List<T> list)
    指定されたリストを、その要素の自然順序付けに従って昇順にソートします。
    static <T> void
    sort(List<T> list, Comparator<? super T> c)
    指定されたコンパレータが示す順序に従って、指定されたリストをソートします。
    static void
    swap(List<?> list, int i, int j)
    指定されたリストの指定された位置にある要素をスワップします。
    static <T> Collection<T>
    指定されたコレクションに連動する同期(スレッドセーフな)コレクションを返します。
    static <T> List<T>
    指定されたリストに連動する同期(スレッドセーフな)リストを返します。
    static <K, V> Map<K,V>
    指定されたマップに連動する同期(スレッドセーフな)マップを返します。
    static <K, V> NavigableMap<K,V>
    指定されたナビゲート可能マップに連動する同期(スレッドセーフな)ナビゲート可能マップを返します。
    static <T> NavigableSet<T>
    指定されたナビゲート可能セットに連動する同期(スレッドセーフな)ナビゲート可能セットを返します。
    static <T> Set<T>
    指定されたセットに連動する同期(スレッドセーフな)セットを返します。
    static <K, V> SortedMap<K,V>
    指定されたソート・マップに連動する同期(スレッドセーフな)ソート・マップを返します。
    static <T> SortedSet<T>
    指定されたソート・セットに連動する同期(スレッドセーフな)ソート・セットを返します。
    static <T> Collection<T>
    指定されたコレクションの「変更不可能なビュー」を返します。
    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>
    指定されたナビゲート可能なマップの「変更不可能なビュー」を返します。
    static <T> NavigableSet<T>
    指定されたナビゲート可能なセットの「変更不可能なビュー」を返します。
    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>
    指定されたソート・セットの「変更不可能なビュー」を返します。

    クラス 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 <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 - 検索されるキー。
      戻り値:
      リスト内に検索キーがある場合は検索キーのインデックス。それ以外の場合は(-(挿入ポイント) - 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値は、要素の自然順序付けが使用されることを示す。
      戻り値:
      リスト内に検索キーがある場合は検索キーのインデックス。それ以外の場合は(-(挿入ポイント) - 1) 挿入時点は、そのキーがリストに挿入される時点として定義される。つまり、そのキーよりも大きい最初の要素のインデックス。リスト内のすべての要素が指定されたキーよりも小さい場合はlist.size() これにより、キーが見つかった場合にのみ戻り値が>= 0になることが保証される。
      例外:
      ClassCastException - リストに指定されたコンパレータで相互に比較可能でない要素がある場合、または検索キーがこのコンパレータを使ってリストの要素と相互に比較できない場合。
    • reverse

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

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

      パラメータ:
      list - 要素の順序が逆にされるリスト。
      例外:
      UnsupportedOperationException - 指定されたリストまたはそのリスト・イテレータがsetオペレーションをサポートしない場合。
    • shuffle

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

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

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

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

      パラメータ:
      list - 順序が入れ替えられるリスト。
      例外:
      UnsupportedOperationException - 指定されたリストまたはそのリスト・イテレータがsetオペレーションをサポートしない場合。
    • shuffle

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

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

      このメソッドは一次時間で動作します。 指定されたリストが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 <T> void fill(List<? super T> list, T obj)
      指定されたリストのすべての要素を指定された要素で置き換えます。

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

      型パラメータ:
      T - リスト内のオブジェクトのクラス
      パラメータ:
      list - 指定された要素が挿入されるリスト。
      obj - 指定されたリストに挿入される要素。
      例外:
      UnsupportedOperationException - 指定されたリストまたはそのリスト・イテレータがsetオペレーションをサポートしない場合。
    • copy

      public static <T> void copy(List<? super T> dest, List<? extends T> src)
      あるリストから別のリストにすべての要素をコピーします。 このオペレーションのあと、コピー先のリストにコピーされた各要素のインデックスは、コピー元のリストのインデックスと同じになります。 宛先リストのサイズは、ソース・リストのサイズ以上でなければなりません。 値が大きい場合、宛先リストの残りの要素は影響を受けません。

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

      型パラメータ:
      T - リスト内のオブジェクトのクラス
      パラメータ:
      dest - コピー先のリスト。
      src - コピー元のリスト。
      例外:
      IndexOutOfBoundsException - コピー先のリストがコピー元のリスト全体を格納するには小さすぎる場合。
      UnsupportedOperationException - コピー・リストのリスト・イテレータがsetオペレーションをサポートしない場合。
    • min

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

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

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

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

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

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

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

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

      型パラメータ:
      T - コレクション内のオブジェクトのクラス
      パラメータ:
      coll - 最大の要素を決めるコレクション。
      comp - 最大の要素リストを決定するコンパレータ。 null値は、要素の自然順序付けが使用されることを示す。
      戻り値:
      指定されたコンパレータに従った、指定されたコレクションの最大の要素。
      例外:
      ClassCastException - コレクションに、指定されたコンパレータで相互に比較できない要素がある場合。
      NoSuchElementException - コレクションが空の場合。
      関連項目:
    • 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に移動します(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 - リストを回転する距離。 この値に制約はなく、値は0でも、負でも、list.size()より大きくてもかまわない。
      例外:
      UnsupportedOperationException - 指定されたリストまたはそのリスト・イテレータがsetオペレーションをサポートしない場合。
      導入されたバージョン:
      1.4
    • replaceAll

      public static <T> boolean replaceAll(List<T> list, T oldVal, T newVal)
      リスト内に出現する指定された値をすべてほかの値に置き換えます。 つまり、list内で(oldVal==null ? e==null : oldVal.equals(e))となる各要素enewValに置き換えます。 このメソッドはリストのサイズには影響を及ぼしません。
      型パラメータ:
      T - リスト内のオブジェクトのクラス
      パラメータ:
      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 <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
      指定されたコレクションの「変更不可能なビュー」を返します。 返されたコレクションでのクエリー・オペレーションは、指定されたコレクションを直接読み込みます。直接かそのイテレータを使うかに関係なく、返されたコレクションを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      T - コレクション内のオブジェクトのクラス
      パラメータ:
      c - 変更不可能なビューが返されるコレクション。
      戻り値:
      指定されたコレクションの変更不可能なビュー。
    • unmodifiableSet

      public static <T> Set<T> unmodifiableSet(Set<? extends T> s)
      指定されたセットの「変更不可能なビュー」を返します。 返されたセットでのクエリー・オペレーションは、指定されたセットを直接読み込み、直接かそのイテレータを使うかに関係なく、返されたセットを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      T - セット内のオブジェクトのクラス
      パラメータ:
      s - 変更不可能なビューが返されるセット。
      戻り値:
      指定されたセットの変更不可能なビュー。
    • unmodifiableSortedSet

      public static <T> SortedSet<T> unmodifiableSortedSet(SortedSet<T> s)
      指定されたソート・セットの「変更不可能なビュー」を返します。 返されたソート・セットでのクエリー・オペレーションは、指定されたソート・セットを直接読み込みます。 直接か、そのイテレータを使うか、あるいはそのsubSetheadSet、またはtailSetビューを使うかに関係なく、返されたソート・セットを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      T - セット内のオブジェクトのクラス
      パラメータ:
      s - 変更不可能なビューが返されるソート・セット。
      戻り値:
      指定されたソート・セットの変更不可能なビュー。
    • unmodifiableNavigableSet

      public static <T> NavigableSet<T> unmodifiableNavigableSet(NavigableSet<T> s)
      指定されたナビゲート可能なセットの「変更不可能なビュー」を返します。 返されたナビゲート可能セットでの問合わせオペレーションは、指定されたナビゲート可能セットを直接読み込みます。 直接か、そのイテレータを使うか、あるいはそのsubSetheadSet、またはtailSetビューを使うかに関係なく、返されたナビゲート可能セットを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      T - セット内のオブジェクトのクラス
      パラメータ:
      s - 変更不可能なビューが返されるナビゲート可能セット
      戻り値:
      指定されたナビゲート可能セットの変更不可能なビュー
      導入されたバージョン:
      1.8
    • unmodifiableList

      public static <T> List<T> unmodifiableList(List<? extends T> list)
      指定されたリストの「変更不可能なビュー」を返します。 返されたリストでのクエリー・オペレーションは、指定されたリストを直接読み込みます。直接か、そのイテレータを使うかに関係なく、返されたリストを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      T - リスト内のオブジェクトのクラス
      パラメータ:
      list - 変更不可能なビューが返されるリスト。
      戻り値:
      指定されたリストの変更不可能なビュー。
    • unmodifiableMap

      public static <K, V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)
      指定されたマップの「変更不可能なビュー」を返します。 返されたマップでのクエリー・オペレーションは、指定されたマップを直接読み込みます。直接か、そのコレクション・ビューを使うかに関係なく、返されたマップを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      K - マップ・キーのクラス
      V - マップ値のクラス
      パラメータ:
      m - 変更不可能なビューが返されるマップ。
      戻り値:
      指定されたマップの変更不可能なビュー。
    • unmodifiableSortedMap

      public static <K, V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> m)
      指定されたソート・マップの「変更不可能なビュー」を返します。 返されたソート・マップでのクエリー・オペレーションは、指定されたソート・マップを直接読み込みます。 直接か、そのコレクション・ビューを使うか、あるいはそのsubMapheadMap、またはtailMapビューを使うかに関係なく、返されたソート・マップを変更しようとするとUnsupportedOperationExceptionがスローされます。

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

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      K - マップ・キーのクラス
      V - マップ値のクラス
      パラメータ:
      m - 変更不可能なビューが返されるソート・マップ。
      戻り値:
      指定されたソート・マップの変更不可能なビュー。
    • unmodifiableNavigableMap

      public static <K, V> NavigableMap<K,V> unmodifiableNavigableMap(NavigableMap<K,? extends V> m)
      指定されたナビゲート可能なマップの「変更不可能なビュー」を返します。 返されたナビゲート可能マップでの問合わせオペレーションは、指定されたナビゲート可能マップを直接読み込みます。 直接か、そのコレクション・ビューを使うか、あるいはそのsubMapheadMap、またはtailMapビューを使うかに関係なく、返されたナビゲート可能マップを変更しようとするとUnsupportedOperationExceptionがスローされます。

      指定されたナビゲート可能マップが直列化可能の場合は、返されるナビゲート可能マップも直列化可能になります。

      実装上のノート:
      引数がすでに変更可能でない場合、このメソッドはその引数を返します。
      型パラメータ:
      K - マップ・キーのクラス
      V - マップ値のクラス
      パラメータ:
      m - 変更不可能なビューが返されるナビゲート可能マップ
      戻り値:
      指定されたナビゲート可能マップの変更不可能なビュー
      導入されたバージョン:
      1.8
    • synchronizedCollection

      public static <T> Collection<T> synchronizedCollection(Collection<T> c)
      指定されたコレクションに連動する同期(スレッドセーフな)コレクションを返します。 確実に直列アクセスを実現するには、基となるコレクションへのアクセスはすべて返されたコレクションを介して行う必要があります。

      IteratorSpliterator、または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

      public static <T> Set<T> synchronizedSet(Set<T> s)
      指定されたセットに連動する同期(スレッドセーフな)セットを返します。 確実に直列アクセスを実現するには、基となるセットへのアクセスはすべて返されたセットを介して行う必要があります。

      IteratorSpliterator、または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

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

      subSetheadSet、またはtailSetビューのいずれかをIteratorSpliteratorまたは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 - 同期ソート・セットに「ラップ」されるソート・セット。
      戻り値:
      指定されたソート・セットの同期ビュー。
    • synchronizedNavigableSet

      public static <T> NavigableSet<T> synchronizedNavigableSet(NavigableSet<T> s)
      指定されたナビゲート可能セットに連動する同期(スレッドセーフな)ナビゲート可能セットを返します。 確実に直列アクセスを実現するには、基となるナビゲート可能セットへのアクセスはすべて、返されたナビゲート可能セット(またはそのビュー)を介して行う必要があります。

      subSetheadSettailSetのいずれかのビューをIteratorSpliteratorStream経由で手動で同期させる必要があります:

        NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
            ...
        synchronized (s) {
            Iterator i = s.iterator(); // Must be in the synchronized block
            while (i.hasNext())
                foo(i.next());
        }
       
      または
        NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
        NavigableSet s2 = s.headSet(foo, true);
            ...
        synchronized (s) {  // Note: s, not s2!!!
            Iterator i = s2.iterator(); // Must be in the synchronized block
            while (i.hasNext())
                foo(i.next());
        }
       
      これを行わない場合、動作は保証されません。

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

      型パラメータ:
      T - セット内のオブジェクトのクラス
      パラメータ:
      s - 同期されたナビゲート可能セットに「ラップ」されるナビゲート可能セット
      戻り値:
      指定されたナビゲート可能セットの同期ビュー
      導入されたバージョン:
      1.8
    • synchronizedList

      public static <T> List<T> synchronizedList(List<T> list)
      指定されたリストに連動する同期(スレッドセーフな)リストを返します。 確実に直列アクセスを実現するには、基になるリストへのアクセスはすべて、返されたリストを介して行う必要があります。

      IteratorSpliteratorまたは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

      public static <K, V> Map<K,V> synchronizedMap(Map<K,V> m)
      指定されたマップに連動する同期(スレッドセーフな)マップを返します。 確実に直列アクセスを実現するには、基になるマップへのアクセスはすべて、返されたマップを介して行う必要があります。

      IteratorSpliteratorまたは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

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

      subMapheadMapまたはtailMapビューのコレクション・ビューのいずれかをIteratorSpliteratorまたはStream経由でトラバースするときに、返されたソート・マップを手動で同期させることが不可欠です:

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

      public static <K, V> NavigableMap<K,V> synchronizedNavigableMap(NavigableMap<K,V> m)
      指定されたナビゲート可能マップに連動する同期(スレッドセーフな)ナビゲート可能マップを返します。 確実に直列アクセスを実現するには、基となるナビゲート可能マップへのアクセスはすべて、返されたナビゲート可能マップ(またはそのビュー)を介して行う必要があります。

      subMapheadMapまたはtailMapビューのコレクション・ビューのいずれかをIteratorSpliteratorまたはStream経由でトラバースするときに、返されたナビゲート可能なマップを手動で同期させることが不可欠です:

        NavigableMap m = Collections.synchronizedNavigableMap(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());
        }
       
      または
        NavigableMap m = Collections.synchronizedNavigableMap(new TreeMap());
        NavigableMap m2 = m.subMap(foo, true, bar, false);
            ...
        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());
        }
       
      これを行わない場合、動作は保証されません。

      指定されたナビゲート可能マップが直列化可能の場合は、返されるナビゲート可能マップも直列化可能になります。

      型パラメータ:
      K - マップ・キーのクラス
      V - マップ値のクラス
      パラメータ:
      m - 同期されたナビゲート可能マップに「ラップ」されるナビゲート可能マップ
      戻り値:
      指定されたナビゲート可能マップの同期ビュー。
      導入されたバージョン:
      1.8
    • 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オペレーションを基となるコレクションに渡すことはなくObjectequalsメソッドおよびhashCodeメソッドに依存します。 これは、基となるコレクションがセットまたはリストの場合にそれらのオペレーションの規約を守るために必要です。

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

      nullはどの参照型の値ともみなされるため、基になるコレクションがnull要素の挿入を許可するときは必ず、返されるコレクションもこれを許可します。

      型パラメータ:
      E - コレクション内のオブジェクトのクラス
      パラメータ:
      c - 動的に型保証されたビューが返されるコレクション
      type - cが保持することを許された要素の型
      戻り値:
      指定されたコレクションの、動的に型保証されたビュー
      導入されたバージョン:
      1.5
    • checkedQueue

      public static <E> Queue<E> checkedQueue(Queue<E> queue, Class<E> type)
      指定されたキューの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastExceptionがスローされます。 動的に型保証されたビューが生成される前はキューに不正な型の要素が含まれず、キューへの後続のアクセスがすべてこのビューを介して行われる場合、キューには不正な型の要素が含まれないことが保証されます

      動的に型保証されたビューの使用については、checkedCollectionメソッドのドキュメントを参照してください。

      指定されたキューが直列化可能の場合は、返されるキューも直列化可能になります。

      nullはどの参照型の値ともみなされるため、基になるキューがnull要素の挿入を許可するときは必ず、返されるキューもこれを許可します。

      型パラメータ:
      E - キュー内のオブジェクトのクラス
      パラメータ:
      queue - 動的に型保証されたビューが返されるキュー
      type - queueが保持することを許された要素の型
      戻り値:
      指定されたキューの動的に型保証されたビュー
      導入されたバージョン:
      1.8
    • checkedSet

      public static <E> Set<E> checkedSet(Set<E> s, Class<E> type)
      指定されたセットの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastExceptionがスローされます。 動的に型保証されたビューが生成される前はセットに不正な型の要素が含まれず、セットへの後続のアクセスがすべてこのビューを介して行われる場合、セットには不正な型の要素が含まれないことが保証されます

      動的に型保証されたビューの使用については、checkedCollectionメソッドのドキュメントを参照してください。

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

      nullはどの参照型の値ともみなされるため、基になるセットがnull要素の挿入を許可するときは必ず、返されるセットもこれを許可します。

      型パラメータ:
      E - セット内のオブジェクトのクラス
      パラメータ:
      s - 動的に型保証されたビューが返されるセット
      type - sが保持することを許された要素の型
      戻り値:
      指定されたセットの動的に型保証されたビュー
      導入されたバージョン:
      1.5
    • checkedSortedSet

      public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s, Class<E> type)
      指定されたソート・セットの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastExceptionがスローされます。 動的に型保証されたビューが生成される前はソート・セットに不正な型の要素が含まれず、ソート・セットへの後続のアクセスがすべてこのビューを介して行われる場合、ソート・セットには不正な型の要素が含まれないことが保証されます

      動的に型保証されたビューの使用については、checkedCollectionメソッドのドキュメントを参照してください。

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

      nullはどの参照型の値ともみなされるため、基になるソート・セットがnull要素の挿入を許可するときは必ず、返されるソート・セットもこれを許可します。

      型パラメータ:
      E - セット内のオブジェクトのクラス
      パラメータ:
      s - 動的に型保証されたビューが返されるソート・セット
      type - sが保持することを許された要素の型
      戻り値:
      指定されたソート・セットの動的に型保証されたビュー
      導入されたバージョン:
      1.5
    • checkedNavigableSet

      public static <E> NavigableSet<E> checkedNavigableSet(NavigableSet<E> s, Class<E> type)
      指定されたナビゲート可能なセットの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastExceptionがスローされます。 動的に型保証されたビューが生成される前はナビゲート可能セットに不正な型の要素が含まれず、ナビゲート可能セットへの後続のアクセスがすべてこのビューを介して行われる場合、ナビゲート可能セットには不正な型の要素が含まれないことが保証されます

      動的に型保証されたビューの使用については、checkedCollectionメソッドのドキュメントを参照してください。

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

      nullはどの参照型の値とも見なされるため、基になるソート・セットがnull要素の挿入を許可するときは必ず、返されるナビゲート可能セットもこれを許可します。

      型パラメータ:
      E - セット内のオブジェクトのクラス
      パラメータ:
      s - 動的に型保証されたビューが返されるナビゲート可能セット
      type - sが保持することを許された要素の型
      戻り値:
      指定されたナビゲート可能セットの動的に型保証されたビュー
      導入されたバージョン:
      1.8
    • checkedList

      public static <E> List<E> checkedList(List<E> list, Class<E> type)
      指定されたリストの動的に型保証されたビューを返します。 不正な型の要素を挿入しようとすると、すぐにClassCastExceptionがスローされます。 動的に型保証されたビューが生成される前はリストに不正な型の要素が含まれず、リストへの後続のアクセスがすべてこのビューを介して行われる場合、リストには不正な型の要素が含まれないことが保証されます

      動的に型保証されたビューの使用については、checkedCollectionメソッドのドキュメントを参照してください。

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

      nullはどの参照型の値ともみなされるため、基になるリストがnull要素の挿入を許可するときは必ず、返されるリストもこれを許可します。

      型パラメータ:
      E - リスト内のオブジェクトのクラス
      パラメータ:
      list - 動的に型保証されたビューが返されるリスト
      type - listが保持することを許された要素の型
      戻り値:
      指定されたリストの動的に型保証されたビュー
      導入されたバージョン:
      1.5
    • checkedMap

      public static <K, V> Map<K,V> checkedMap(Map<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
    • 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
    • checkedNavigableMap

      public static <K, V> NavigableMap<K,V> checkedNavigableMap(NavigableMap<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.8
    • emptyIterator

      public static <T> Iterator<T> emptyIterator()
      要素が1つも含まれていないイテレータを返します。 より正確には、

      複数の呼び出しから同じオブジェクトを返すために、このメソッドの実装は許可されていますが、必須ではありません。

      型パラメータ:
      T - そのイテレータに要素が含まれているとした場合の、その要素の型
      戻り値:
      空のイテレータ
      導入されたバージョン:
      1.7
    • emptyListIterator

      public static <T> ListIterator<T> emptyListIterator()
      要素が1つも含まれていないリスト・イテレータを返します。 より正確には、

      複数の呼び出しから同じオブジェクトを返すために、このメソッドの実装は許可されていますが、必須ではありません。

      型パラメータ:
      T - そのイテレータに要素が含まれているとした場合の、その要素の型
      戻り値:
      空のリスト・イテレータ
      導入されたバージョン:
      1.7
    • emptyEnumeration

      public static <T> Enumeration<T> emptyEnumeration()
      要素が1つも含まれていない列挙を返します。 より正確には、

      複数の呼び出しから同じオブジェクトを返すために、このメソッドの実装は許可されていますが、必須ではありません。

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

      public static <E> NavigableSet<E> emptyNavigableSet()
      空のナビゲート可能なセット(不変)を返します。 このセットは直列化が可能です。

      次に、空のナビゲート可能セットを取得するための型保証された方法の例を示します。

       
           NavigableSet<String> s = Collections.emptyNavigableSet();
       

      実装上のノート:
      このメソッドの実装では、呼出しごとに個別のNavigableSetオブジェクトを作成する必要はありません。
      型パラメータ:
      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
    • emptyNavigableMap

      public static final <K, V> NavigableMap<K,V> emptyNavigableMap()
      空のナビゲート可能なマップ(不変)を返します。 このマップは直列化可能です。

      次に、空のマップを取得するための型保証された方法の例を示します。

       
           NavigableMap<String, Date> s = Collections.emptyNavigableMap();
       

      実装上のノート:
      このメソッドの実装では、呼出しごとに個別のNavigableMapオブジェクトを作成する必要はありません。
      型パラメータ:
      K - マップ・キーのクラス
      V - マップ値のクラス
      戻り値:
      空のナビゲート可能マップ
      導入されたバージョン:
      1.8
    • シングルトン

      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());
       
      逆引きの辞書編集順(アルファベット順)で配列をソートします。

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

      型パラメータ:
      T - コンパレータによって比較されるオブジェクトのクラス
      戻り値:
      Comparableインタフェースを実装するオブジェクトのコレクションで自然順序付けの逆を義務付けるコンパレータ。
      関連項目:
    • reverseOrder

      public static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
      指定されたコンパレータの逆順を義務付けるコンパレータを返します。 指定されたコンパレータがnullの場合、このメソッドはreverseOrder()と等価になります(つまり、Comparableインタフェースを実装するオブジェクトのコレクションに逆の自然順序を義務付けるコンパレータを返す)。

      返されるコンパレータは直列化可能です(指定されたコンパレータも直列化可能であるかnullの場合)。

      型パラメータ:
      T - コンパレータによって比較されるオブジェクトのクラス
      パラメータ:
      cmp - 返されるコンパレータによってその順序が逆になるコンパレータ、またはnull
      戻り値:
      指定されたコンパレータの逆順を義務付けるコンパレータ。
      導入されたバージョン:
      1.5
    • 列挙

      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
    • 非接続

      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)
      指定されたすべての要素を指定されたコレクションに追加します。 追加される要素は個別に指定されるか配列として指定されます。 この便利なメソッドの動作は、cc.addAll(Collections.unmodifiableList(Arrays.asList(elements)))の動作と似ています。

      要素を個別に指定する場合、このメソッドでは、次の例のように、数種類の要素を既存のコレクションに簡単に追加できます。

           Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
       

      型パラメータ:
      T - 追加する要素およびコレクションの要素のクラス
      パラメータ:
      c - elementsが挿入されるコレクション
      elements - cに挿入される要素
      戻り値:
      呼出しの結果としてこのコレクションが変更された場合はtrue
      例外:
      UnsupportedOperationException - caddオペレーションをサポートしない場合
      NullPointerException - elementsに1つ以上のnull値が含まれており、cがnull要素を許可しない場合、あるいはcまたはelementsnullの場合
      IllegalArgumentException - elements内のある値のプロパティが原因で、cに追加できない場合
      導入されたバージョン:
      1.5
      関連項目:
    • newSetFromMap

      public static <E> Set<E> newSetFromMap(Map<E,Boolean> map)
      指定されたマップに連動するセットを返します。 結果として得られるセットには、その連動するマップと同じ順序、並行性、およびパフォーマンス特性が表示されます。 このファクトリ・メソッドは、本質的に、Map実装に対応するSet実装を提供します。 HashMapTreeMapなど対応するSet実装がすでにあるMap実装では、このメソッドを使用する必要はありません。

      このメソッドによって返されるセットでのそれぞれのメソッド呼出しによって、1つの例外を除き、基になるマップかそのkeySetビューでメソッド呼出しが1つだけ発生します。 addAllメソッドは、基になるマップの一連のput呼び出しとして実装されます。

      指定されたマップは、このメソッドが呼び出された時点では空でなければならず、このメソッドの終了後は直接アクセスすることはできません。 これらの条件は、次のコードの抜粋に示すように、マップが空の状態で作成され、このメソッドに直接渡され、マップへの参照が保持されない場合に保証されます。

          Set<Object> weakHashSet = Collections.newSetFromMap(
              new WeakHashMap<Object, Boolean>());
       

      型パラメータ:
      E - マップ・キーおよび返されるセット内のオブジェクトのクラス
      パラメータ:
      map - 基になるマップ
      戻り値:
      マップに連動しているセット
      例外:
      IllegalArgumentException - mapが空でない場合
      導入されたバージョン:
      1.6
    • asLifoQueue

      public static <T> Queue<T> asLifoQueue(Deque<T> deque)
      Dequeのビューを後入れ先出し(Lifo)のQueueとして返します。 addメソッドはpushにマップされ、removeメソッドはpopにマップされ、以下同様にマップされます。 このビューは、Queueが必要なメソッドを使用したいがLifo順序付けが必要な場合に有効なことがあります。

      このメソッドによって返されるキューでのそれぞれのメソッド呼出しによって、1つの例外を除き、基になる両端キューでメソッド呼出しが1つだけ発生します。 addAllメソッドは、基になる両端キューの一連のaddFirst呼び出しとして実装されます。

      型パラメータ:
      T - 両端キュー内のオブジェクトのクラス
      パラメータ:
      deque - 両端キュー
      戻り値:
      キュー
      導入されたバージョン:
      1.6