クラスArrayList<E>

型パラメータ:
E - このリストの要素のタイプ
すべての実装されたインタフェース:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, SequencedCollection<E>
直系の既知のサブクラス:
AttributeList, RoleList, RoleUnresolvedList

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
Listインタフェースのサイズ変更可能な配列実装。 オプションのリスト操作をすべて実装し、nullを含むすべての要素を許可します。 このクラスは、Listインタフェースの実装に加えて、リストの格納に内部的に使用される配列のサイズを操作するメソッドを提供します。 (このクラスは、非同期である点を除き、ほぼVectorと同等です。)

size, isEmpty, get, set, getFirst, getLast, removeLast, iterator, listIteratorおよびreversed操作は、一定時間で実行されます。 addおよびaddLast操作は、「償却定数時間」で実行されます。つまり、n個の要素requiresO(n)時間を追加します。 ほとんどの場合、ほかのすべての処理も比例的な時間で実行されます。 定数係数は、LinkedList実装の場合と比べて低くなります。

ArrayListインスタンスには、「容量」があります。 容量とは、リストの要素を格納するために使用する配列のサイズです。 これは常にリストのサイズ以上の大きさになります。 ArrayListに要素を追加すると、その容量は自動的に拡大します。 拡大のポリシーについては、要素を追加すると「一定の償却時間コスト」が伴うこと以外は、詳しくは指定されていません。

アプリケーションでは、ensureCapacity操作を使用して多数の要素を追加する前に、ArrayListインスタンスの容量を増やすことができます。 これにより、増加に対する再割当てが軽減される場合があります。

この実装はsynchronizedされません。 複数のスレッドが同時にArrayListインスタンスにアクセスし、1つ以上のスレッドがリストを構造的に変更する場合、外部で同期する必要があります。 構造的な変更とは、1つ以上の要素を追加または削除したり、基になる配列のサイズを明示的に変更したりする処理のことです。要素の値だけを設定する処理は、構造的な変更ではありません。 これは通常、リストを自然にカプセル化する一部のオブジェクトでsynchronizedすることによって達成されます。 そのようなオブジェクトが存在しない場合は、Collections.synchronizedListメソッドを使用してリストを「ラップ」するようにしてください。 リストが誤ってsynchronizedなしでアクセスされるのを防ぐために、作成時に行うことをお薦めします。

  List list = Collections.synchronizedList(new ArrayList(...));

このクラスのiteratorおよびlistIteratorメソッドによって返されるイテレータは、fail-fastです: イテレータの作成後、イテレータ独自のremoveメソッドまたはaddメソッドを介してリストが構造的に変更された場合は、イテレータはConcurrentModificationExceptionをスローします。 このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。

通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、イテレータのフェイルファストの動作を保証することはできません。 フェイルファスト・イテレータは、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。 したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。イテレータのフェイルファストの動作はバグを検出するためにのみ使用すべきです。

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

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

    クラスで宣言されたフィールド AbstractList

    modCount
    修飾子と型
    フィールド
    説明
    protected int
    このリストの構造が変更された回数です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    初期容量10で空のリストを作成します。
    ArrayList(int initialCapacity)
    指定された初期容量で空のリストを作成します。
    ArrayList(Collection<? extends E> c)
    指定されたコレクションの要素が含まれているリストを、コレクションのイテレータによって返される順序で構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    add(int index, E element)
    リスト内の指定された位置に指定された要素を挿入します。
    boolean
    add(E e)
    リストの最後に、指定された要素を追加します。
    boolean
    addAll(int index, Collection<? extends E> c)
    指定されたコレクション内のすべての要素を、リストの指定された位置に挿入します。
    boolean
    addAll(Collection<? extends E> c)
    指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でリストの最後に追加します。
    void
    addFirst(E element)
    このコレクションの最初の要素として要素を追加します (オプションの操作)。
    void
    addLast(E element)
    このコレクションの最後の要素として要素を追加します (オプションの操作)。
    void
    このリストからすべての要素を削除します。
    このArrayListインスタンスのシャロー・コピーを返します。
    boolean
    指定された要素がこのリストに含まれている場合にtrueを返します。
    void
    ensureCapacity(int minCapacity)
    必要に応じて、このArrayListインスタンスの容量を増やし、最小容量引数で指定された要素数以上を保持できるようにします。
    void
    forEach(Consumer<? super E> action)
    Iterableの各要素に対して指定されたアクションを、すべての要素が処理されるか、アクションが例外をスローするまで実行します。
    get(int index)
    このリスト内の指定された位置にある要素を返します。
    このコレクションの最初の要素を取得します。
    このコレクションの最後の要素を取得します。
    int
    指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。
    boolean
    このリストに要素がない場合にtrueを返します。
    このリスト内の要素を適切な順序で反復するイテレータを返します。
    int
    指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。
    このリスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。
    listIterator(int index)
    リスト内の指定された位置で始まる、リスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。
    remove(int index)
    このリストの指定された位置にある要素を削除します。
    boolean
    指定された要素がこのリストにあれば、その最初のものをリストから削除します。
    boolean
    リストから、指定されたコレクション内に保持されているすべての要素を削除します。
    このコレクションの最初の要素を削除して返します(オプションの操作)。
    boolean
    removeIf(Predicate<? super E> filter)
    指定された述語(オプションの操作)を満たす、このコレクションのすべての要素を削除します。
    このコレクションの最後の要素を削除して返します(オプションの操作)。
    protected void
    removeRange(int fromIndex, int toIndex)
    fromIndex (これを含む)からtoIndex (これを含まない)の範囲のインデックスを持つすべての要素をこのリストから削除します。
    boolean
    指定されたコレクション内に保持されている、リスト内の要素だけを保持します。
    set(int index, E element)
    リストの指定された位置にある要素を、指定された要素で置き換えます。
    int
    このリスト内にある要素の数を返します。
    このリスト内の要素に対する遅延バインディングおよびフェイルファスト Spliteratorを作成します。
    subList(int fromIndex, int toIndex)
    このリストの、指定されたfromIndex (これを含む)からtoIndex (これを含まない)までの部分のビューを返します。
    このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。
    <T> T[]
    toArray(T[] a)
    このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列の実行時の型は、指定された配列の型になります。
    void
    このArrayListインスタンスの容量をリストの現在のサイズに切り捨てます。

    クラスで宣言されたメソッド AbstractList

    equals, hashCode
    修飾子と型
    メソッド
    説明
    boolean
    指定されたオブジェクトがこのリストと等しいかどうかを比較します。
    int
    このリストのハッシュ・コード値を返します。

    クラスで宣言されたメソッド AbstractCollection

    containsAll, toString
    修飾子と型
    メソッド
    説明
    boolean
    指定したコレクションのすべての要素がこのコレクションに含まれている場合、trueを返します。
    このコレクションの文字列表現を返します。

    クラスオブジェクトで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースCollectionで宣言されたメソッド

    parallelStream, stream, toArray
    修飾子と型
    メソッド
    説明
    default Stream<E>
    このコレクションをソースとして、潜在的に並列のStreamを返します。
    default Stream<E>
    このコレクションをソースとして使用して、逐次的なStreamを返します。
    default <T> T[]
    toArray(IntFunction<T[]> generator)
    指定されたgenerator関数を使用してこのコレクションのすべての要素を含む配列を返し、返された配列を割り当てます。

    インタフェースListで宣言されたメソッド

    containsAll, replaceAll, reversed, sort
    修飾子と型
    メソッド
    説明
    boolean
    指定されたコレクションのすべての要素がこのリストに含まれている場合にtrueを返します。
    default void
    このリストの各要素を、その要素(オプションの操作)に演算子を適用した結果に置き換えます。
    default List<E>
    このコレクションの逆順viewを返します。
    default void
    sort(Comparator<? super E> c)
    このリストは、指定されたComparator (オプションの操作)によって誘導された順序に従ってソートされます。
  • コンストラクタの詳細

    • ArrayList

      public ArrayList(int initialCapacity)
      指定された初期容量で空のリストを作成します。
      パラメータ:
      initialCapacity - リストの初期容量
      スロー:
      IllegalArgumentException - 指定された初期容量が負の場合
    • ArrayList

      public ArrayList()
      初期容量10で空のリストを作成します。
    • ArrayList

      public ArrayList(Collection<? extends E> c)
      指定されたコレクションの要素が含まれているリストを、コレクションのイテレータによって返される順序で構築します。
      パラメータ:
      c - 要素がこのリストに配置されるコレクション
      スロー:
      NullPointerException - 指定されたコレクションがnullである場合
  • メソッドの詳細

    • trimToSize

      public void trimToSize()
      このArrayListインスタンスの容量をリストの現在のサイズに切り捨てます。 アプリケーションは、この操作を使用して、ArrayListインスタンスのストレージを最小化できます。
    • ensureCapacity

      public void ensureCapacity(int minCapacity)
      必要に応じて、このArrayListインスタンスの容量を増やし、最小容量引数で指定された要素数以上を保持できるようにします。
      パラメータ:
      minCapacity - 目的の最小容量
    • size

      public int size()
      このリスト内にある要素の数を返します。
      定義:
      size、インタフェースCollection<E>
      定義:
      size、インタフェースList<E>
      戻り値:
      このリスト内の要素数
    • isEmpty

      public boolean isEmpty()
      このリストに要素がない場合にtrueを返します。
      定義:
      isEmpty、インタフェースCollection<E>
      定義:
      isEmpty、インタフェースList<E>
      オーバーライド:
      isEmpty、クラスAbstractCollection<E>
      戻り値:
      このリストに要素が含まれていない場合はtrue
    • contains

      public boolean contains(Object o)
      指定された要素がこのリストに含まれている場合にtrueを返します。 より正式には、このリストにObjects.equals(o, e)などの要素eが少なくとも1つ含まれている場合のみ、trueを返します。
      定義:
      contains、インタフェースCollection<E>
      定義:
      contains、インタフェースList<E>
      オーバーライド:
      contains、クラスAbstractCollection<E>
      パラメータ:
      o - このリスト内にあるかどうかが判定される要素
      戻り値:
      指定された要素がこのリスト内にある場合はtrue
    • indexOf

      public int indexOf(Object o)
      指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。 より正式には、Objects.equals(o, get(i))のように最も低い索引iを戻し、そのような索引がない場合は -1を戻します。
      定義:
      indexOf、インタフェースList<E>
      オーバーライド:
      indexOf、クラスAbstractList<E>
      パラメータ:
      o - 検索する要素
      戻り値:
      指定された要素がこのリスト内で最初に検出された位置のインデックス。その要素がこのリストにない場合は -1
    • lastIndexOf

      public int lastIndexOf(Object o)
      指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。 より正式には、Objects.equals(o, get(i))のように最も高い索引iを戻し、そのような索引がない場合は -1を戻します。
      定義:
      lastIndexOf、インタフェースList<E>
      オーバーライド:
      lastIndexOf、クラスAbstractList<E>
      パラメータ:
      o - 検索する要素
      戻り値:
      指定された要素がこのリスト内で最後に検出された位置のインデックス。その要素がこのリストにない場合は -1
    • clone

      public Object clone()
      このArrayListインスタンスのシャロー・コピーを返します。 要素自体はコピーされません。
      オーバーライド:
      clone、クラスObject
      戻り値:
      このArrayListインスタンスのクローン
      関連項目:
    • toArray

      public Object[] toArray()
      このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。

      返される配列は、それへの参照がこのリストで保持されない場合に、安全になります。 (つまり、このメソッドは新しい配列を割り当てます)。 このため、呼出し側は、返された配列を自由に変更できます。

      このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。

      定義:
      toArray、インタフェースCollection<E>
      定義:
      toArray、インタフェースList<E>
      オーバーライド:
      toArray、クラスAbstractCollection<E>
      戻り値:
      このリスト内のすべての要素を適切な順序で含んでいる配列
      関連項目:
    • toArray

      public <T> T[] toArray(T[] a)
      このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列の実行時の型は、指定された配列の型になります。 指定された配列にリストが収まる場合は、その配列で返されます。 それ以外の場合は、指定された配列の実行時の型とこのリストのサイズを使って新しい配列が割り当てられます。

      リストが(つまり、配列にはリストより多くの要素があります)の余裕のある指定された配列に収まる場合、コレクションの終端の直後の配列の要素はnullに設定されます。 (このリストにnull要素がないことを呼出し側が知っている場合にのみ、この特性を利用してリストの長さを判断できます。)

      定義:
      toArray、インタフェースCollection<E>
      定義:
      toArray、インタフェースList<E>
      オーバーライド:
      toArray、クラスAbstractCollection<E>
      型パラメータ:
      T - コレクションを格納する配列のコンポーネント型
      パラメータ:
      a - 配列が十分な大きさを持つ場合は、このリストの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる。
      戻り値:
      リストの要素が格納されている配列
      スロー:
      ArrayStoreException - 指定された配列の実行時の型が、このリスト内のすべての要素の実行時の型のスーパー・タイプではない場合
      NullPointerException - 指定された配列がnullである場合
    • get

      public E get(int index)
      このリスト内の指定された位置にある要素を返します。
      定義:
      get、インタフェースList<E>
      定義:
      get、クラスAbstractList<E>
      パラメータ:
      index - 返される要素のインデックス
      戻り値:
      このリスト内の指定された位置にある要素
      スロー:
      IndexOutOfBoundsException - 索引が(index < 0 || index >= size())の範囲外であるかどうか
    • getFirst

      public E getFirst()
      このコレクションの最初の要素を取得します。
      定義:
      インタフェースList<E>内のgetFirst
      定義:
      インタフェースSequencedCollection<E>内のgetFirst
      戻り値:
      取得された要素
      スロー:
      NoSuchElementException - このコレクションが空の場合
      導入されたバージョン:
      21
    • getLast

      public E getLast()
      このコレクションの最後の要素を取得します。
      定義:
      インタフェースList<E>内のgetLast
      定義:
      インタフェースSequencedCollection<E>内のgetLast
      戻り値:
      取得された要素
      スロー:
      NoSuchElementException - このコレクションが空の場合
      導入されたバージョン:
      21
    • set

      public E set(int index, E element)
      リストの指定された位置にある要素を、指定された要素で置き換えます。
      定義:
      set、インタフェースList<E>
      オーバーライド:
      set、クラスAbstractList<E>
      パラメータ:
      index - 置換される要素のインデックス。
      element - 指定された位置に格納される要素。
      戻り値:
      指定された位置に以前あった要素。
      スロー:
      IndexOutOfBoundsException - 索引が(index < 0 || index >= size())の範囲外であるかどうか
    • add

      public boolean add(E e)
      リストの最後に、指定された要素を追加します。
      定義:
      add、インタフェースCollection<E>
      定義:
      add、インタフェースList<E>
      オーバーライド:
      add、クラスAbstractList<E>
      パラメータ:
      e - このリストに追加される要素
      戻り値:
      true (Collection.add(E)で指定されているとおり)
    • add

      public void add(int index, E element)
      リスト内の指定された位置に指定された要素を挿入します。 その位置とそれ以降に要素があればそれらを右に移動させ、各要素のインデックスに1を加えます。
      定義:
      add、インタフェースList<E>
      オーバーライド:
      add、クラスAbstractList<E>
      パラメータ:
      index - 指定の要素が挿入される位置のインデックス
      element - 挿入される要素
      スロー:
      IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())
    • addFirst

      public void addFirst(E element)
      このコレクションの最初の要素として要素を追加します (オプションの操作)。 この操作が正常に完了すると、指定された要素はこのコレクションのメンバーになり、発生順に最初の要素になります。
      定義:
      インタフェースList<E>内のaddFirst
      定義:
      インタフェースSequencedCollection<E>内のaddFirst
      パラメータ:
      element - 追加する要素
      導入されたバージョン:
      21
    • addLast

      public void addLast(E element)
      このコレクションの最後の要素として要素を追加します (オプションの操作)。 この操作が正常に完了すると、指定された要素はこのコレクションのメンバーになり、最後の要素が出現順になります。
      定義:
      インタフェースList<E>内のaddLast
      定義:
      インタフェースSequencedCollection<E>内のaddLast
      パラメータ:
      element - 追加する要素。
      導入されたバージョン:
      21
    • remove

      public E remove(int index)
      このリストの指定された位置にある要素を削除します。 後続の要素を左に移動します(インデックスから1を減算)。
      定義:
      remove、インタフェースList<E>
      オーバーライド:
      remove、クラスAbstractList<E>
      パラメータ:
      index - 削除される要素のインデックス
      戻り値:
      リストから削除した要素
      スロー:
      IndexOutOfBoundsException - 索引が(index < 0 || index >= size())の範囲外であるかどうか
    • removeFirst

      public E removeFirst()
      このコレクションの最初の要素を削除して返します(オプションの操作)。
      定義:
      インタフェースList<E>内のremoveFirst
      定義:
      インタフェースSequencedCollection<E>内のremoveFirst
      戻り値:
      削除される要素
      スロー:
      NoSuchElementException - このコレクションが空の場合
      導入されたバージョン:
      21
    • removeLast

      public E removeLast()
      このコレクションの最後の要素を削除して返します(オプションの操作)。
      定義:
      インタフェースList<E>内のremoveLast
      定義:
      インタフェースSequencedCollection<E>内のremoveLast
      戻り値:
      削除される要素
      スロー:
      NoSuchElementException - このコレクションが空の場合
      導入されたバージョン:
      21
    • remove

      public boolean remove(Object o)
      指定された要素がこのリストにあれば、その最初のものをリストから削除します。 その要素がリストにない場合、変更はありません。 より正式には、Objects.equals(o, get(i)) (そのような要素が存在する場合)のように、最も低い索引iを持つ要素を削除します。 指定された要素がこのリストに含まれていた場合、つまり、呼出しの結果としてこのリストが変更された場合にtrueを返します。
      定義:
      remove、インタフェースCollection<E>
      定義:
      remove、インタフェースList<E>
      オーバーライド:
      remove、クラスAbstractCollection<E>
      パラメータ:
      o - このリストから削除される要素(その要素が存在する場合)
      戻り値:
      指定された要素がこのリストに含まれていた場合はtrue
    • clear

      public void clear()
      このリストからすべての要素を削除します。 この呼出しが戻ると、このリストは空になります。
      定義:
      clear、インタフェースCollection<E>
      定義:
      clear、インタフェースList<E>
      オーバーライド:
      clear、クラスAbstractList<E>
    • addAll

      public boolean addAll(Collection<? extends E> c)
      指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でリストの最後に追加します。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 (つまり、指定されたコレクションがこのリスト自身であり、リストが空でない場合、この呼出しの動作は保証されません。)
      定義:
      addAll、インタフェースCollection<E>
      定義:
      addAll、インタフェースList<E>
      オーバーライド:
      addAll、クラスAbstractCollection<E>
      パラメータ:
      c - このリストに追加される要素を含むコレクション。
      戻り値:
      呼出しの結果としてこのリストが変更された場合はtrue
      スロー:
      NullPointerException - 指定されたコレクションがnullである場合
      関連項目:
    • addAll

      public boolean addAll(int index, Collection<? extends E> c)
      指定されたコレクション内のすべての要素を、リストの指定された位置に挿入します。 その位置とそれ以降に要素がある場合は、それらを右に移動して、各要素のインデックスに1を加えます。 新しい要素は、指定されたコレクションのイテレータによって返される順番でリストに挿入されます。
      定義:
      addAll、インタフェースList<E>
      オーバーライド:
      addAll、クラスAbstractList<E>
      パラメータ:
      index - 指定されたコレクションの最初の要素を挿入する位置のインデックス。
      c - このリストに追加される要素を含むコレクション。
      戻り値:
      呼出しの結果としてこのリストが変更された場合はtrue
      スロー:
      IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())
      NullPointerException - 指定されたコレクションがnullである場合
    • removeRange

      protected void removeRange(int fromIndex, int toIndex)
      fromIndex (これを含む)からtoIndex (これを含まない)の範囲のインデックスを持つすべての要素をこのリストから削除します。 後続の要素は左に移動します(インデックス値が減少)。 この呼出しにより、(toIndex - fromIndex)の要素数だけリストが短くなります。 toIndex==fromIndexの場合、このオペレーションは何も行いません。
      オーバーライド:
      removeRange、クラスAbstractList<E>
      パラメータ:
      fromIndex - 削除する最初の要素のインデックス
      toIndex - 削除する最後の要素の直後のインデックス
      スロー:
      IndexOutOfBoundsException - fromIndexまたはtoIndexが範囲外の場合(fromIndex < 0 || toIndex > size() || toIndex < fromIndex)
    • removeAll

      public boolean removeAll(Collection<?> c)
      リストから、指定されたコレクション内に保持されているすべての要素を削除します。
      定義:
      removeAll、インタフェースCollection<E>
      定義:
      removeAll、インタフェースList<E>
      オーバーライド:
      removeAll、クラスAbstractCollection<E>
      パラメータ:
      c - このリストから削除される要素を含むコレクション
      戻り値:
      呼出しの結果としてこのリストが変更された場合はtrue
      スロー:
      ClassCastException - このリストのある要素のクラスが、指定されたコレクションと互換でない場合(オプション)
      NullPointerException - このリストにnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合
      関連項目:
    • retainAll

      public boolean retainAll(Collection<?> c)
      指定されたコレクション内に保持されている、リスト内の要素だけを保持します。 つまり、指定されたコレクションに含まれていないすべての要素をこのリストから削除します。
      定義:
      retainAll、インタフェースCollection<E>
      定義:
      retainAll、インタフェースList<E>
      オーバーライド:
      retainAll、クラスAbstractCollection<E>
      パラメータ:
      c - このリストで保持される要素を含むコレクション
      戻り値:
      呼出しの結果としてこのリストが変更された場合はtrue
      スロー:
      ClassCastException - このリストのある要素のクラスが、指定されたコレクションと互換でない場合(オプション)
      NullPointerException - このリストにnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合
      関連項目:
    • listIterator

      public ListIterator<E> listIterator(int index)
      リスト内の指定された位置で始まる、リスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。 指定されたインデックスは、nextの最初の呼出しによって返される最初の要素を示します。 previousの最初の呼出しは、指定されたインデックスから1を引いたインデックスを持つ要素を返します。

      返されるリスト・イテレータは、フェイルファストです。

      定義:
      listIterator、インタフェースList<E>
      オーバーライド:
      listIterator、クラスAbstractList<E>
      パラメータ:
      index - リスト・イテレータから(next呼出しによって)返される最初の要素のインデックス
      戻り値:
      リスト内の指定された位置で始まる、リスト内の要素を(適切な順序で)反復するリスト・イテレータ
      スロー:
      IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())
    • listIterator

      public ListIterator<E> listIterator()
      このリスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。

      返されるリスト・イテレータは、フェイルファストです。

      定義:
      listIterator、インタフェースList<E>
      オーバーライド:
      listIterator、クラスAbstractList<E>
      戻り値:
      このリスト内の要素を(適切な順序で)反復するリスト・イテレータ
      関連項目:
    • iterator

      public Iterator<E> iterator()
      このリスト内の要素を適切な順序で反復するイテレータを返します。

      返されるイテレータは、フェイルファストです。

      定義:
      iterator、インタフェースCollection<E>
      定義:
      iterator、インタフェースIterable<E>
      定義:
      iterator、インタフェースList<E>
      オーバーライド:
      iterator、クラスAbstractList<E>
      戻り値:
      リスト内の要素を適切な順序で反復するイテレータ
    • subList

      public List<E> subList(int fromIndex, int toIndex)
      このリストの、指定されたfromIndex (これを含む)からtoIndex (これを含まない)までの部分のビューを返します。 fromIndextoIndexが等しい場合は、空のリストが返されます。 返されるリストはこのリストに連動しているため、返されるリスト内での非構造的な変更はこのリストに反映され、このリスト内での変更は返されるリストに反映されます。 返されるリストは、リストに関連するオプションのオペレーションをすべてサポートします。

      このメソッドでは、配列に一般的に見られるような、明示的な範囲操作は必要ありません。 リストを予期する操作は、リスト全体ではなくsubListビューを渡すことで範囲操作として使用できます。 たとえば、次のイディオムは、ある範囲の要素をリストから削除します。

           list.subList(from, to).clear();
      
      indexOf(Object)およびlastIndexOf(Object)でも、同様の慣用法を作成できます。CollectionsクラスのアルゴリズムがすべてsubListに適用できます。

      バッキング・リスト(すなわち、このリスト)の構造が、返されたリストを経由せずに変更された場合、このメソッドで返されるリストのセマンティックスは定義されていません。 (構造の変更とは、リストのサイズが変わるような変更や、進行中のイテレーションが不正な結果に終わるような変更のことです。)

      定義:
      subList、インタフェースList<E>
      オーバーライド:
      subList、クラスAbstractList<E>
      パラメータ:
      fromIndex - subListの下端点(これを含む)
      toIndex - subListの上端点(これを含まない)
      戻り値:
      このリスト内の指定された範囲のビュー
      スロー:
      IndexOutOfBoundsException - 端点のインデックス値が範囲外の場合(fromIndex < 0||toIndex> size)
      IllegalArgumentException - 端点のインデックスの順番が正しくない場合(fromIndex> toIndex)
    • forEach

      public void forEach(Consumer<? super E> action)
      インタフェースからコピーされた説明: Iterable
      Iterableの各要素に対して指定されたアクションを、すべての要素が処理されるか、アクションが例外をスローするまで実行します。 反復の順序でアクションが実行されます(その順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。

      このメソッドの動作は、オーバーライドするクラスが同時変更ポリシーを指定していないかぎり、要素の基礎となるソースを変更する副作用をアクションが実行する場合には指定されません。

      定義:
      forEach、インタフェースIterable<E>
      パラメータ:
      action - 各要素に対して実行されるアクション
      スロー:
      NullPointerException - 指定されたアクションがnullである場合
    • spliterator

      public Spliterator<E> spliterator()
      このリスト内の要素に対する遅延バインディングおよびフェイルファスト Spliteratorを作成します。

      Spliteratorは、Spliterator.SIZEDSpliterator.SUBSIZED、およびSpliterator.ORDEREDを報告します。 オーバーライドする実装は、追加の特性値の報告をドキュメント化する必要があります。

      定義:
      spliterator、インタフェースCollection<E>
      定義:
      spliterator、インタフェースIterable<E>
      定義:
      spliterator、インタフェースList<E>
      戻り値:
      このリスト内の要素に対するSpliterator
      導入されたバージョン:
      1.8
    • removeIf

      public boolean removeIf(Predicate<? super E> filter)
      次のインタフェースからコピーされた説明: Collection
      指定された述語(オプションの操作)を満たす、このコレクションのすべての要素を削除します。 反復中に、または述語によってスローされたエラーまたは実行時例外は、呼出し側に中継されます。
      定義:
      removeIf、インタフェースCollection<E>
      パラメータ:
      filter - 削除される要素に対してtrueを返す述語
      戻り値:
      要素が削除された場合はtrue
      スロー:
      NullPointerException - 指定されたフィルタがnullである場合