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

クラスLinkedList<E>

型パラメータ:
E - このコレクション内に保持される要素の型
すべての実装されたインタフェース:
Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>

public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, Serializable
ListおよびDequeインタフェースの二重リンク・リスト実装です。 リストの任意のオペレーションをすべて実装し、nullを含むすべての要素を許容します。

すべてのオペレーションは、二重リンク・リストの場合に予期されるとおりの動作をします。 リストをインデックスで処理するオペレーションは、リストの先端または終端のうち、指定したインデックスに近い方からリストをトラバースします。

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

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

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

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

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

導入されたバージョン:
1.2
関連項目:
List, ArrayList, 直列化された形式
  • フィールドのサマリー

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

    modCount
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    LinkedList()
    空のリストを構築します。
    LinkedList​(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 e)
    このリストの先頭に、指定された要素を挿入します。
    void addLast​(E e)
    リストの最後に、指定された要素を追加します。
    void clear()
    このリストからすべての要素を削除します。
    Object clone()
    このLinkedListのシャロー・コピーを返します。
    boolean contains​(Object o)
    指定された要素がこのリストに含まれている場合にtrueを返します。
    Iterator<E> descendingIterator()
    この両端キュー内の要素を逆順で反復処理するイテレータを返します。
    E element()
    このリストの先頭(最初の要素)を取得しますが、削除はしません。
    E get​(int index)
    このリスト内の指定された位置にある要素を返します。
    E getFirst()
    このリスト内の最初の要素を返します。
    E getLast()
    このリスト内の最後の要素を返します。
    int indexOf​(Object o)
    指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。
    int lastIndexOf​(Object o)
    指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。
    ListIterator<E> listIterator​(int index)
    このリスト内の要素を適切な順序で反復するリスト・イテレータ(リスト内の指定された位置で始まる)を返します。
    boolean offer​(E e)
    指定された要素をこのリストの末尾(最後の要素)に追加します。
    boolean offerFirst​(E e)
    このリストの先頭に、指定された要素を挿入します。
    boolean offerLast​(E e)
    このリストの末尾に、指定された要素を挿入します。
    E peek()
    このリストの先頭(最初の要素)を取得しますが、削除はしません。
    E peekFirst()
    このリストの最初の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
    E peekLast()
    このリストの最後の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
    E poll()
    このリストの先頭(最初の要素)を取得し、削除します。
    E pollFirst()
    このリストの最初の要素を取得および削除します。このリストが空の場合はnullを返します。
    E pollLast()
    リストの最後の要素を取得および削除します。このリストが空の場合はnullを返します。
    E pop()
    このリストが表すスタックから要素をポップします。
    void push​(E e)
    このリストが表すスタック上に要素をプッシュします。
    E remove()
    このリストの先頭(最初の要素)を取得し、削除します。
    E remove​(int index)
    このリストの指定された位置にある要素を削除します。
    boolean remove​(Object o)
    指定された要素がこのリストにあれば、その最初のものをリストから削除します。
    E removeFirst()
    このリストから最初の要素を削除して返します。
    boolean removeFirstOccurrence​(Object o)
    このリスト内で最初に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。
    E removeLast()
    このリストから最後の要素を削除して返します。
    boolean removeLastOccurrence​(Object o)
    このリスト内で最後に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。
    E set​(int index, E element)
    リストの指定された位置にある要素を、指定された要素で置き換えます。
    int size()
    このリスト内にある要素の数を返します。
    Spliterator<E> spliterator()
    このリスト内の要素に対する遅延バインディングおよびフェイルファスト Spliteratorを作成します。
    Object[] toArray()
    このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。
    <T> T[] toArray​(T[] a)
    このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列の実行時の型は、指定された配列の型になります。

    クラス java.util.AbstractSequentialListで宣言されたメソッド

    iterator

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

    equals, hashCode, listIterator, removeRange, subList

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

    containsAll, isEmpty, removeAll, retainAll, toString

    クラス java.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait

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

    parallelStream, removeIf, stream, toArray

    インタフェース java.util.Dequeで宣言されたメソッド

    iterator

    インタフェース java.lang.Iterableで宣言されたメソッド

    forEach

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

    containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, replaceAll, retainAll, sort, subList
  • コンストラクタの詳細

    • LinkedList

      public LinkedList()
      空のリストを構築します。
    • LinkedList

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

    • getFirst

      public E getFirst()
      このリスト内の最初の要素を返します。
      定義:
      getFirst、インタフェース: Deque<E>
      戻り値:
      このリスト内の最初の要素
      例外:
      NoSuchElementException - このリストが空の場合
    • getLast

      public E getLast()
      このリスト内の最後の要素を返します。
      定義:
      getLast、インタフェース: Deque<E>
      戻り値:
      このリスト内の最後の要素
      例外:
      NoSuchElementException - このリストが空の場合
    • removeFirst

      public E removeFirst()
      このリストから最初の要素を削除して返します。
      定義:
      removeFirst、インタフェース: Deque<E>
      戻り値:
      このリストからの最初の要素
      例外:
      NoSuchElementException - このリストが空の場合
    • removeLast

      public E removeLast()
      このリストから最後の要素を削除して返します。
      定義:
      removeLast、インタフェース: Deque<E>
      戻り値:
      このリストからの最後の要素
      例外:
      NoSuchElementException - このリストが空の場合
    • addFirst

      public void addFirst​(E e)
      このリストの先頭に、指定された要素を挿入します。
      定義:
      addFirst、インタフェース: Deque<E>
      パラメータ:
      e - 追加する要素
    • addLast

      public void addLast​(E e)
      リストの最後に、指定された要素を追加します。

      このメソッドは、add(E)と同等です。

      定義:
      addLast、インタフェース: Deque<E>
      パラメータ:
      e - 追加する要素
    • contains

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

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

      public boolean add​(E e)
      リストの最後に、指定された要素を追加します。

      このメソッドは、addLast(E)と同等です。

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

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

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

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

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

      public E get​(int index)
      このリスト内の指定された位置にある要素を返します。
      定義:
      get、インタフェース: List<E>
      オーバーライド:
      get、クラス: AbstractSequentialList<E>
      パラメータ:
      index - 返される要素のインデックス
      戻り値:
      このリスト内の指定された位置にある要素
      例外:
      IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
    • set

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

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

      public E remove​(int index)
      このリストの指定された位置にある要素を削除します。 後続の要素を左に移動します(インデックスから1を減算)。 リストから削除された要素が返されます。
      定義:
      remove、インタフェース: List<E>
      オーバーライド:
      remove、クラス: AbstractSequentialList<E>
      パラメータ:
      index - 削除される要素のインデックス
      戻り値:
      指定された位置に以前あった要素。
      例外:
      IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
    • 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
    • peek

      public E peek()
      このリストの先頭(最初の要素)を取得しますが、削除はしません。
      定義:
      peek、インタフェース: Deque<E>
      定義:
      peek、インタフェース: Queue<E>
      戻り値:
      このリストの先頭。このリストが空の場合はnull
      導入されたバージョン:
      1.5
    • element

      public E element()
      このリストの先頭(最初の要素)を取得しますが、削除はしません。
      定義:
      element、インタフェース: Deque<E>
      定義:
      element、インタフェース: Queue<E>
      戻り値:
      このリストの先頭
      例外:
      NoSuchElementException - このリストが空の場合
      導入されたバージョン:
      1.5
    • poll

      public E poll()
      このリストの先頭(最初の要素)を取得し、削除します。
      定義:
      poll、インタフェース: Deque<E>
      定義:
      poll、インタフェース: Queue<E>
      戻り値:
      このリストの先頭。このリストが空の場合はnull
      導入されたバージョン:
      1.5
    • remove

      public E remove()
      このリストの先頭(最初の要素)を取得し、削除します。
      定義:
      remove、インタフェース: Deque<E>
      定義:
      remove、インタフェース: Queue<E>
      戻り値:
      このリストの先頭
      例外:
      NoSuchElementException - このリストが空の場合
      導入されたバージョン:
      1.5
    • offer

      public boolean offer​(E e)
      指定された要素をこのリストの末尾(最後の要素)に追加します。
      定義:
      offer、インタフェース: Deque<E>
      定義:
      offer、インタフェース: Queue<E>
      パラメータ:
      e - 追加する要素
      戻り値:
      true (Queue.offer(E)で指定されているとおり)
      導入されたバージョン:
      1.5
    • offerFirst

      public boolean offerFirst​(E e)
      このリストの先頭に、指定された要素を挿入します。
      定義:
      offerFirst、インタフェース: Deque<E>
      パラメータ:
      e - 挿入する要素
      戻り値:
      true (Deque.offerFirst(E)で指定されているとおり)
      導入されたバージョン:
      1.6
    • offerLast

      public boolean offerLast​(E e)
      このリストの末尾に、指定された要素を挿入します。
      定義:
      offerLast、インタフェース: Deque<E>
      パラメータ:
      e - 挿入する要素
      戻り値:
      true (Deque.offerLast(E)で指定されているとおり)
      導入されたバージョン:
      1.6
    • peekFirst

      public E peekFirst()
      このリストの最初の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
      定義:
      peekFirst、インタフェース: Deque<E>
      戻り値:
      このリストの最初の要素。このリストが空の場合はnull
      導入されたバージョン:
      1.6
    • peekLast

      public E peekLast()
      このリストの最後の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
      定義:
      peekLast、インタフェース: Deque<E>
      戻り値:
      このリストの最後の要素。このリストが空の場合はnull
      導入されたバージョン:
      1.6
    • pollFirst

      public E pollFirst()
      このリストの最初の要素を取得および削除します。このリストが空の場合はnullを返します。
      定義:
      pollFirst、インタフェース: Deque<E>
      戻り値:
      このリストの最初の要素。このリストが空の場合はnull
      導入されたバージョン:
      1.6
    • pollLast

      public E pollLast()
      リストの最後の要素を取得および削除します。このリストが空の場合はnullを返します。
      定義:
      pollLast、インタフェース: Deque<E>
      戻り値:
      このリストの最後の要素。このリストが空の場合はnull
      導入されたバージョン:
      1.6
    • push

      public void push​(E e)
      このリストが表すスタック上に要素をプッシュします。 つまり、このリストの先頭に要素を挿入します。

      このメソッドは、addFirst(E)と同等です。

      定義:
      push、インタフェース: Deque<E>
      パラメータ:
      e - プッシュする要素
      導入されたバージョン:
      1.6
    • pop

      public E pop()
      このリストが表すスタックから要素をポップします。 つまり、このリストの最初の要素を削除して返します。

      このメソッドは、removeFirst()と同等です。

      定義:
      pop、インタフェース: Deque<E>
      戻り値:
      このリストの先頭の要素(このリストが表すスタックの一番上)
      例外:
      NoSuchElementException - このリストが空の場合
      導入されたバージョン:
      1.6
    • removeFirstOccurrence

      public boolean removeFirstOccurrence​(Object o)
      このリスト内で最初に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。 その要素がリストにない場合、変更はありません。
      定義:
      removeFirstOccurrence、インタフェース: Deque<E>
      パラメータ:
      o - このリストから削除される要素(その要素が存在する場合)
      戻り値:
      指定された要素がリストに含まれていた場合はtrue
      導入されたバージョン:
      1.6
    • removeLastOccurrence

      public boolean removeLastOccurrence​(Object o)
      このリスト内で最後に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。 その要素がリストにない場合、変更はありません。
      定義:
      removeLastOccurrence、インタフェース: Deque<E>
      パラメータ:
      o - このリストから削除される要素(その要素が存在する場合)
      戻り値:
      指定された要素がリストに含まれていた場合はtrue
      導入されたバージョン:
      1.6
    • listIterator

      public ListIterator<E> listIterator​(int index)
      このリスト内の要素を適切な順序で反復するリスト・イテレータ(リスト内の指定された位置で始まる)を返します。 List.listIterator(int)の一般規約に従います。

      リスト・イテレータはフェイルファストです。イテレータの作成後に、リスト・イテレータ自体のremoveまたはaddメソッド以外の方法でリストが構造的に変更されると、リスト・イテレータはConcurrentModificationExceptionをスローします。 このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。

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

      public Iterator<E> descendingIterator()
      インタフェースからコピーされた説明: Deque
      この両端キュー内の要素を逆順で反復処理するイテレータを返します。 要素は最後(末尾)から最初(先頭)の順に返されます。
      定義:
      descendingIterator、インタフェース: Deque<E>
      戻り値:
      この両端キュー内の要素を逆順で反復処理するイテレータ
      導入されたバージョン:
      1.6
    • clone

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

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

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

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

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

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

      指定された配列にリストが収まり、さらに余分な領域がある場合(配列にリストより多くの要素がある場合)、配列でリストの末尾に続く要素はnullに設定されます。 このリストにnull要素がないことを呼出し側が知っている場合にのみ、この特性を利用してリストの長さを判断できます。

      toArray()メソッドと同じように、このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。 さらに、このメソッドでは出力配列の実行時の型を正確に制御できるため、環境によっては割当ての手間を抑えるために使用できます。

      xが、文字列だけからなるリストであることがわかっていると仮定します。 次のコードを使うと、新しく割り当てられたStringの配列にリストをダンプできます。

           String[] y = x.toArray(new String[0]);
      toArray(new Object[0])は、機能の点でtoArray()と同一です。

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

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

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

      定義:
      spliterator、インタフェース: Collection<E>
      定義:
      spliterator、インタフェース: Iterable<E>
      定義:
      spliterator、インタフェース: List<E>
      実装上のノート:
      Spliteratorは、追加でSpliterator.SUBSIZEDを報告し、制限付き並列性を許可するためにtrySplitを実装します。
      戻り値:
      このリスト内の要素に対するSpliterator
      導入されたバージョン:
      1.8