- 型パラメータ:
E- このコレクション内に保持される要素の型
- すべての実装されたインタフェース:
Serializable,Cloneable,Iterable<E>,Collection<E>,Deque<E>,List<E>,Queue<E>,SequencedCollection<E>
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
- 関連項目:
-
フィールドのサマリー
クラスjava.util.AbstractListで宣言されたフィールド
modCount -
コンストラクタのサマリー
コンストラクタコンストラクタ説明空のリストを構築します。LinkedList(Collection<? extends E> c) 指定されたコレクションの要素が含まれているリストを、コレクションのイテレータによって返される順序で構築します。 -
メソッドのサマリー
修飾子と型メソッド説明voidこのリスト内の指定された位置に指定された要素を挿入します。booleanこのリストの最後に、指定された要素を追加します。booleanaddAll(int index, Collection<? extends E> c) 指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します。booleanaddAll(Collection<? extends E> c) 指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でこのリストの最後に追加します。voidこのリストの先頭に、指定された要素を挿入します。voidこのリストの最後に、指定された要素を追加します。voidclear()このリストからすべての要素を削除します。clone()このLinkedListのシャロー・コピーを返します。boolean指定された要素がこのリストに含まれている場合にtrueを返します。この両端キュー内の要素を逆順で反復処理するイテレータを返します。element()このリストの先頭(最初の要素)を取得しますが、削除はしません。get(int index) このリスト内の指定された位置にある要素を返します。getFirst()このリスト内の最初の要素を返します。getLast()このリスト内の最後の要素を返します。int指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。int指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。listIterator(int index) このリスト内の要素を適切な順序で反復するリスト・イテレータ(リスト内の指定された位置で始まる)を返します。boolean指定された要素をこのリストの末尾(最後の要素)に追加します。booleanofferFirst(E e) このリストの先頭に、指定された要素を挿入します。booleanこのリストの末尾に、指定された要素を挿入します。peek()このリストの先頭(最初の要素)を取得しますが、削除はしません。このリストの最初の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。peekLast()このリストの最後の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。poll()このリストの先頭(最初の要素)を取得し、削除します。このリストの最初の要素を取得および削除します。このリストが空の場合はnullを返します。pollLast()リストの最後の要素を取得および削除します。このリストが空の場合はnullを返します。pop()このリストが表すスタックから要素をポップします。voidこのリストが表すスタック上に要素をプッシュします。remove()このリストの先頭(最初の要素)を取得し、削除します。remove(int index) このリストの指定された位置にある要素を削除します。boolean指定された要素がこのリストにあれば、その最初のものをリストから削除します。このリストから最初の要素を削除して返します。booleanこのリスト内で最初に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。このリストから最後の要素を削除して返します。booleanこのリスト内で最後に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。reversed()このコレクションの逆順viewを返します。このリストの指定された位置にある要素を、指定された要素で置き換えます。intsize()このリスト内にある要素の数を返します。このリスト内の要素に対する遅延バインディングおよびフェイルファスト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.util.Collectionで宣言されたメソッド
parallelStream, removeIf, stream, toArrayインタフェース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>- 定義:
- インタフェース
List<E>内のgetFirst - 定義:
- インタフェース
SequencedCollection<E>内のgetFirst - 戻り値:
- このリスト内の最初の要素
- スロー:
NoSuchElementException- このリストが空の場合
-
getLast
public E getLast()このリスト内の最後の要素を返します。- 定義:
getLast、インタフェースDeque<E>- 定義:
- インタフェース
List<E>内のgetLast - 定義:
- インタフェース
SequencedCollection<E>内のgetLast - 戻り値:
- このリスト内の最後の要素
- スロー:
NoSuchElementException- このリストが空の場合
-
removeFirst
public E removeFirst()このリストから最初の要素を削除して返します。- 定義:
removeFirst、インタフェースDeque<E>- 定義:
- インタフェース
List<E>内のremoveFirst - 定義:
- インタフェース
SequencedCollection<E>内のremoveFirst - 戻り値:
- このリストからの最初の要素
- スロー:
NoSuchElementException- このリストが空の場合
-
removeLast
public E removeLast()このリストから最後の要素を削除して返します。- 定義:
removeLast、インタフェースDeque<E>- 定義:
- インタフェース
List<E>内のremoveLast - 定義:
- インタフェース
SequencedCollection<E>内のremoveLast - 戻り値:
- このリストからの最後の要素
- スロー:
NoSuchElementException- このリストが空の場合
-
addFirst
public void addFirst(E e) このリストの先頭に、指定された要素を挿入します。 -
addLast
public void addLast(E e) このリストの最後に、指定された要素を追加します。このメソッドは、
add(E)と同等です。 -
contains
public boolean contains(Object o) 指定された要素がこのリストに含まれている場合にtrueを返します。 より正式には、このリストにObjects.equals(o, e)などの要素eが少なくとも1つ含まれている場合のみ、trueを返します。 -
size
public int size()このリスト内にある要素の数を返します。 -
add
public boolean add(E e) このリストの最後に、指定された要素を追加します。このメソッドは、
addLast(E)と同等です。 -
remove
public boolean remove(Object o) 指定された要素がこのリストにあれば、その最初のものをリストから削除します。 このリストにその要素がない場合は、変更されません。 より正式には、Objects.equals(o, get(i))(そのような要素が存在する場合)のように、最も低い索引iを持つ要素を削除します。 指定された要素がこのリストに含まれていた場合、つまり、呼出しの結果としてこのリストが変更された場合に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である場合- 関連項目:
-
addAll
public boolean addAll(int index, Collection<? extends E> c) 指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します。 その位置の現在の要素(ある場合)とそれ以降の要素を右に移動します(インデックスが増えます)。 新しい要素は、指定されたコレクションのイテレータによって返される順番でリストに挿入されます。- 定義:
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
このリストの指定された位置にある要素を、指定された要素で置き換えます。- 定義:
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を戻します。 -
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()このリストの先頭(最初の要素)を取得しますが、削除はしません。 -
element
public E element()このリストの先頭(最初の要素)を取得しますが、削除はしません。 -
poll
public E poll()このリストの先頭(最初の要素)を取得し、削除します。 -
remove
public E remove()このリストの先頭(最初の要素)を取得し、削除します。 -
offer
public boolean offer(E e) 指定された要素をこのリストの末尾(最後の要素)に追加します。 -
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を返します。 -
peekLast
public E peekLast()このリストの最後の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。 -
pollFirst
public E pollFirst()このリストの最初の要素を取得および削除します。このリストが空の場合はnullを返します。 -
pollLast
public E pollLast()リストの最後の要素を取得および削除します。このリストが空の場合はnullを返します。 -
push
public void push(E e) -
pop
public E pop()- 定義:
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())- 関連項目:
-
descendingIterator
インタフェースからコピーされた説明:Dequeこの両端キュー内の要素を逆順で反復処理するイテレータを返します。 要素は最後(末尾)から最初(先頭)の順に返されます。- 定義:
descendingIterator、インタフェースDeque<E>- 戻り値:
- この両端キュー内の要素を逆順で反復処理するイテレータ
- 導入されたバージョン:
- 1.6
-
clone
public Object clone()このLinkedListのシャロー・コピーを返します。 (要素自体は複製されません。) -
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()メソッドと同じように、このメソッドは、配列ベースの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
-
reversed
public LinkedList<E> reversed()このコレクションの逆順viewを返します。 返されるビュー内の要素の出現順序は、このコレクション内の要素の出現順序の逆です。 逆の順序付けは、返されるビューのビュー・コレクションに含まれるすべての順序依存操作に影響します。 コレクション実装でこのビューの変更が許可されている場合、ベースとなるコレクションへの変更"ライトスルー"。 実装によっては、基礎となるコレクションに対する変更が、この逆方向ビューに表示される場合と表示されない場合があります。戻し処理されたビューへの変更は許可され、このリストに伝播されます。 また、このリストへの変更は、逆方向ビューに表示されます。
-