インタフェースList<E>
- 型パラメータ:
E- このリスト内に存在する要素の型
- すべてのスーパー・インタフェース:
Collection<E>,Iterable<E>,SequencedCollection<E>
- 既知のすべてのサブインタフェース:
ClassPrinter.ListNodePREVIEW
- 既知のすべての実装クラス:
AbstractList,AbstractSequentialList,ArrayList,AttributeList,CopyOnWriteArrayList,LinkedList,RoleList,RoleUnresolvedList,Stack,Vector
セットとは異なり、通常、リストは重複する要素を許可します。 通常、リストではe1.equals(e2)などの要素e1とe2のペアが許可され、NULL要素がまったく許可されている場合は通常、複数のNULL要素が許可されます。 ユーザーが重複する値を挿入しようとしたときに実行時の例外をスローすることにより、重複する値を禁止するリストを実装する場合もありますが、このように使われることはほとんどありません。
Listインタフェースは、Collectionインタフェースで指定されたものよりも、iterator, add, remove, equalsおよびhashCodeメソッドの契約に、追加の規定を配置します。 便宜上、ほかの継承メソッドの宣言もここに含まれます。
Listインタフェースには、リスト要素への位置指定(インデックス付き)アクセスのための4つのメソッドが用意されています。 Java配列と同様に、Listのインデックスは0から始まります。 これらの操作は、一部の実装(たとえば、LinkedListクラス)の索引値に比例して実行される場合があります。 このため、呼出し側がこうした実装について知らない場合は、リストにインデックスを付けるよりも、リスト内の要素を反復してください。
Listインタフェースには、Iteratorインタフェースが提供する通常の操作に加えて、要素の挿入と置換、および双方向アクセスを許可する、ListIteratorという特別なイテレータが用意されています。 リスト内の指定した位置から開始するリスト・イテレータを取得するためのメソッドが提供されています。
Listインタフェースには、指定したオブジェクトを検索するための2つのメソッドがあります。 パフォーマンスの観点からは、これらのメソッドは注意して使用する必要があります。 多くの実装でこれらのメソッドは、時間のかかる線形探索を実行します。
Listインタフェースには、リスト内の任意のポイントで複数の要素を効率的に挿入および削除するための2つのメソッドがあります。
ノート: リスト自体を要素として含めることは可能ですが、細心の注意を払ってください: equalsおよびhashCodeメソッドは、このようなリストに適切に定義されなくなりました。
リストの実装には、格納できる要素に制限があるものもあります。 たとえば、null要素を禁止する実装や、null要素の型に制限がある実装もあります。 不適格要素を追加しようとすると、チェックされていない例外(通常はNullPointerExceptionまたはClassCastException)がスローされます。 不適格な要素を照会しようとすると、例外がスローされる場合や、ただfalseを返す場合もあります。前者の動作を実行する実装もあれば、後者の動作を実行する実装もあります。 もう少し一般的に言うと、不適当な要素を処理しようとしてリストへの挿入が完了しない場合、例外がスローされるか成功するかは実装の任意です。 このインタフェースの仕様では、そうした例外は「任意」と記載されています。
変更不可能なLists
List.ofおよびList.copyOf静的ファクトリ・メソッドは、変更不可能なリストを作成する便利な方法を提供します。 これらのメソッドによって作成されたListインスタンスには、次の特性があります:
- それらはunmodifiableです。 要素を追加、削除または置換することはできません。 Listで任意のmutatorメソッドを呼び出すと、常に
UnsupportedOperationExceptionがスローされます。 ただし、含まれている要素自体が可変である場合は、リストの内容が変更される可能性があります。 null要素は許可されません。null要素でそれらを作成しようとすると、NullPointerExceptionになります。- すべての要素が直列化可能である場合は、直列化可能です。
- リスト内の要素の順序は、指定された引数の順序、または指定された配列内の要素の順序と同じです。
- リストとその
subListビューは、RandomAccessインタフェースを実装します。 - それらはvalue-basedです。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し元は、返されたインスタンスのアイデンティティについて何も想定しないでください。 ファクトリは、新しいインスタンスを作成したり、既存のインスタンスを再利用できます。
- これらは、「直列化された形式」ページで指定したとおりに直列化されます。
このインタフェースは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明voidこのリスト内の指定された位置に、指定された要素を挿入します(オプションの操作)。boolean指定された要素をこのリストの最後に追加します(オプションの操作)。booleanaddAll(int index, Collection<? extends E> c) 指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します(オプションの操作)。booleanaddAll(Collection<? extends E> c) 指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序で、このリストの最後に追加します(オプションの操作)。default voidこのコレクションの最初の要素として要素を追加します (オプションの操作)。default voidこのコレクションの最後の要素として要素を追加します (オプションの操作)。voidclear()すべての要素をこのリストから削除します(オプションの操作)。boolean指定された要素がこのリストに含まれている場合にtrueを返します。booleancontainsAll(Collection<?> c) 指定されたコレクションのすべての要素がこのリストに含まれている場合にtrueを返します。static <E> List<E> copyOf(Collection<? extends E> coll) 指定されたCollectionの要素をその反復順序で含む「変更不可能なList」を返します。boolean指定されたオブジェクトがこのリストと等しいかどうかを比較します。get(int index) このリスト内の指定された位置にある要素を返します。default EgetFirst()このコレクションの最初の要素を取得します。default EgetLast()このコレクションの最後の要素を取得します。inthashCode()このリストのハッシュ・コード値を返します。int指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。booleanisEmpty()このリストに要素がない場合にtrueを返します。iterator()このリスト内の要素を適切な順序で反復するイテレータを返します。int指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。このリスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。listIterator(int index) リスト内の指定された位置で始まる、リスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。static <E> List<E> of()ゼロ要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1) 1つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E... elements) 任意の数の要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2) 2つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3) 3つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4) 4つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4, E e5) 5つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6) 6つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7) 7つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8) 8つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9) 9つの要素を含む変更不可能なリストを返します。static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10) 10個の要素を含む変更不可能なリストを返します。remove(int index) このリスト内の指定された位置にある要素を削除します(オプションの操作)。boolean指定された要素がこのリストにあれば、その最初のものをリストから削除します(オプションの操作)。booleanremoveAll(Collection<?> c) このリストから、指定されたコレクションに含まれる要素をすべて削除します(オプションの操作)。default Eこのコレクションの最初の要素を削除して返します(オプションの操作)。default Eこのコレクションの最後の要素を削除して返します(オプションの操作)。default voidreplaceAll(UnaryOperator<E> operator) このリストの各要素を、その要素(オプションの操作)に演算子を適用した結果に置き換えます。booleanretainAll(Collection<?> c) このリスト内で、指定されたコレクションに含まれている要素だけを保持します(オプションの操作)。reversed()このコレクションの逆順viewを返します。このリスト内の指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。intsize()このリスト内にある要素の数を返します。default voidsort(Comparator<? super E> c) このリストは、指定されたComparator(オプションの操作)によって誘導された順序に従ってソートされます。default Spliterator<E> このリスト内の要素に対するSpliteratorを作成します。subList(int fromIndex, int toIndex) このリストの、指定されたfromIndex(これを含む)からtoIndex(これを含まない)までの部分のビューを返します。Object[]toArray()このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。<T> T[]toArray(T[] a) このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列の実行時の型は、指定された配列の型になります。インタフェースjava.util.Collectionで宣言されたメソッド
parallelStream, removeIf, stream, toArray
-
メソッドの詳細
-
size
int size()このリスト内にある要素の数を返します。 このリストにInteger.MAX_VALUEを超える要素が含まれている場合は、Integer.MAX_VALUEを返します。- 定義:
size、インタフェースCollection<E>- 戻り値:
- このリスト内の要素数
-
isEmpty
boolean isEmpty()このリストに要素がない場合にtrueを返します。- 定義:
isEmpty、インタフェースCollection<E>- 戻り値:
- このリストに要素が含まれていない場合は
true
-
contains
boolean contains(Object o) 指定された要素がこのリストに含まれている場合にtrueを返します。 より正式には、このリストにObjects.equals(o, e)などの要素eが少なくとも1つ含まれている場合のみ、trueを返します。- 定義:
contains、インタフェースCollection<E>- パラメータ:
o- このリスト内にあるかどうかが判定される要素- 戻り値:
- 指定された要素がこのリスト内にある場合は
true - 例外:
ClassCastException- 指定された要素の型が、このリストと互換でない場合(オプション)NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合(オプション)
-
iterator
-
toArray
Object[] toArray()このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列は、それへの参照がこのリストで保持されない場合に、安全になります。 (つまり、このメソッドは、このリストが配列に連動している場合でも、新しい配列を割り当てる必要があります。) このため、呼出し側は、返された配列を自由に変更できます。
このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。
- 定義:
toArray、インタフェースCollection<E>- 戻り値:
- このリスト内のすべての要素を適切な順序で含んでいる配列
- 関連項目:
-
toArray
<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>- 型パラメータ:
T- コレクションを格納する配列のコンポーネント型- パラメータ:
a- 配列が十分な大きさを持つ場合は、このリストの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる。- 戻り値:
- このリストの要素が含まれている配列
- 例外:
ArrayStoreException- 指定された配列の実行時の型が、このリスト内のすべての要素の実行時の型のスーパー・タイプではない場合NullPointerException- 指定された配列がnullである場合
-
add
boolean add(E e) 指定された要素をこのリストの最後に追加します(オプションの操作)。このオペレーションをサポートするリストは、リストに追加できる要素に制限を加える場合があります。 たとえば、リストにはnull要素の追加を拒否するものもあれば、追加される要素の型について制限を加えるものもあります。 Listクラスは、追加できる要素について制約があれば、ドキュメントでそれを明確に記述するようにしてください。
- 定義:
add、インタフェースCollection<E>- パラメータ:
e- このリストに追加される要素- 戻り値:
true(Collection.add(E)で指定されているとおり)- 例外:
UnsupportedOperationException-addオペレーションがこのリストでサポートされない場合ClassCastException- 指定された要素のクラスが原因で、このリストにその要素を追加できない場合NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合IllegalArgumentException- この要素のあるプロパティが原因で、このリストにその要素を追加できない場合
-
remove
boolean remove(Object o) 指定された要素がこのリストにあれば、その最初のものをリストから削除します(オプションの操作)。 このリストにその要素がない場合は、変更されません。 より正式には、Objects.equals(o, get(i))(そのような要素が存在する場合)のように、最も低い索引iを持つ要素を削除します。 指定された要素がこのリストに含まれていた場合、つまり、呼出しの結果としてこのリストが変更された場合にtrueを返します。- 定義:
remove、インタフェースCollection<E>- パラメータ:
o- このリストから削除される要素(その要素が存在する場合)- 戻り値:
- 指定された要素がこのリストに含まれていた場合は
true - 例外:
ClassCastException- 指定された要素の型が、このリストと互換でない場合(オプション)NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合(オプション)UnsupportedOperationException-remove操作がこのリストでサポートされていない場合
-
containsAll
boolean containsAll(Collection<?> c) 指定されたコレクションのすべての要素がこのリストに含まれている場合にtrueを返します。- 定義:
containsAll、インタフェースCollection<E>- パラメータ:
c- このリストにあるかどうかがチェックされるコレクション- 戻り値:
- 指定されたコレクションのすべての要素がこのリストに含まれている場合は
true - 例外:
ClassCastException- 指定されたコレクションの1つ以上の要素の型が、このリストと互換でない場合(オプション)NullPointerException- 指定されたコレクションに1つ以上のnull要素が含まれており、このリストがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合- 関連項目:
-
addAll
boolean addAll(Collection<? extends E> c) 指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序で、このリストの最後に追加します(オプションの操作)。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 (これは、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。)- 定義:
addAll、インタフェースCollection<E>- パラメータ:
c- このリストに追加される要素を含むコレクション。- 戻り値:
- 呼出しの結果としてこのリストが変更された場合は
true - 例外:
UnsupportedOperationException-addAll操作がこのリストでサポートされていない場合ClassCastException- 指定されたコレクションの要素のクラスが原因で、このリストにその要素を追加できない場合NullPointerException- 指定されたコレクションに1つ以上のnull要素が含まれており、このリストがnull要素を許可しない場合、または指定されたコレクションがnullの場合IllegalArgumentException- 指定されたコレクションの要素のあるプロパティが原因で、このリストにその要素を追加できない場合- 関連項目:
-
addAll
boolean addAll(int index, Collection<? extends E> c) 指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します(オプションの操作)。 その位置とそれ以降に要素がある場合は、それらを右に移動して、各要素のインデックスに1を加えます。 新しい要素は、指定されたコレクションのイテレータによって返される順序でこのリストに挿入されます。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 (これは、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。)- パラメータ:
index- 指定されたコレクションの最初の要素を挿入する位置のインデックス。c- このリストに追加される要素を含むコレクション。- 戻り値:
- 呼出しの結果としてこのリストが変更された場合は
true - 例外:
UnsupportedOperationException-addAll操作がこのリストでサポートされていない場合ClassCastException- 指定されたコレクションの要素のクラスが原因で、このリストにその要素を追加できない場合NullPointerException- 指定されたコレクションに1つ以上のnull要素が含まれており、このリストがnull要素を許可しない場合、または指定されたコレクションがnullの場合IllegalArgumentException- 指定されたコレクションの要素のあるプロパティが原因で、このリストにその要素を追加できない場合IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index> size())
-
removeAll
boolean removeAll(Collection<?> c) このリストから、指定されたコレクションに含まれる要素をすべて削除します(オプションの操作)。- 定義:
removeAll、インタフェースCollection<E>- パラメータ:
c- このリストから削除される要素を含むコレクション- 戻り値:
- 呼出しの結果としてこのリストが変更された場合は
true - 例外:
UnsupportedOperationException-removeAll操作がこのリストでサポートされていない場合ClassCastException- このリストのある要素のクラスが、指定されたコレクションと互換でない場合(オプション)NullPointerException- このリストにnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合- 関連項目:
-
retainAll
boolean retainAll(Collection<?> c) このリスト内で、指定されたコレクションに含まれている要素だけを保持します(オプションの操作)。 つまり、指定されたコレクションに含まれていないすべての要素をこのリストから削除します。- 定義:
retainAll、インタフェースCollection<E>- パラメータ:
c- このリストで保持される要素を含むコレクション- 戻り値:
- 呼出しの結果としてこのリストが変更された場合は
true - 例外:
UnsupportedOperationException-retainAll操作がこのリストでサポートされていない場合ClassCastException- このリストのある要素のクラスが、指定されたコレクションと互換でない場合(オプション)NullPointerException- このリストにnull要素が含まれており、指定されたコレクションがnull要素を許可しない場合(オプション)、または指定されたコレクションがnullの場合- 関連項目:
-
replaceAll
default void replaceAll(UnaryOperator<E> operator) このリストの各要素を、その要素(オプションの操作)に演算子を適用した結果に置き換えます。 演算子によってスローされたエラーまたは実行時例外は、呼出し側に中継されます。- 実装要件:
- この
リストでは、デフォルト実装は次と同等です。
このリストのリスト・イテレータがfinal ListIterator<E> li = list.listIterator(); while (li.hasNext()) { li.set(operator.apply(li.next())); }set操作をサポートしない場合、最初の要素を置き換えるときにUnsupportedOperationExceptionがスローされます。 - パラメータ:
operator- 各要素に適用する演算子- 例外:
UnsupportedOperationException- このリストでreplaceAll操作がサポートされていない場合NullPointerException- 指定された演算子がnull、または演算子の結果がnull値でこのリストがnull要素を許可しない場合(オプション)- 導入されたバージョン:
- 1.8
-
sort
default void sort(Comparator<? super E> c) このリストは、指定されたComparator(オプションの操作)によって誘導された順序に従ってソートされます。 ソートはstableです: このメソッドは等しい要素を並べ替えてはいけません。このリストの要素はすべて、指定されたコンパレータを使用して相互に比較可能であることが必要です(つまり、リストの要素
e1およびe2に対して、c.compare(e1, e2)からClassCastExceptionがスローされないようにする必要があります)。指定されたコンパレータが
nullの場合は、リストの全要素でComparableインタフェースを実装し、要素の自然順序を使用する必要があります。このリストは変更可能でなければなりませんが、サイズ変更はできなくてもかまいません。
- 実装要件:
- デフォルト実装は、このリストの全要素を含む配列の取得、配列のソート、このリストの反復処理を行うことにより、配列の対応する位置から各要素を再設定します。 (これは、リンクされたリストを適所にソートしようとした場合のn2 log(n)のパフォーマンスになるのを回避します。)
- 実装上のノート:
- この実装は安定した適応型の反復マージ・ソートです。このソートでは、入力配列がランダムに順序付けられる場合は従来のマージ・ソートのパフォーマンスを提供しながら、入力配列が部分的にソートされている場合は必要となる比較回数がn lg(n)よりもかなり少なくなります。 入力配列がほとんどソートされている場合、この実装ではおよそn回の比較が必要になります。 一時ストレージの要件は、ほとんどソートされている入力配列用の小さな定数から、ランダムに順序付けられた入力配列用のn/2のオブジェクト参照までさまざまです。
この実装では、その入力配列で昇順と降順を等しく利用するため、同じ入力配列のさまざまな部分で昇順と降順を利用できます。 それは、2つ以上のソートされた配列をマージするのに適切です。つまり、それらの配列を連結し、結果となる配列をソートするだけです。
この実装は、Tim Peters氏によるPython用のリスト・ソート(TimSort)から応用されました。 それは、『Proceedings of the Fourth Annual ACM-SIAM Symposium on Discrete Algorithms』(1993年1月)の467-474ページに記載されている、Peter McIlroy氏の「Optimistic Sorting and Information Theoretic Complexity」からの技術を採用しています。
- パラメータ:
c- リスト要素を比較するために使用されるComparator。null値は、要素の自然順序付けが使用されることを示す- 例外:
ClassCastException- リストに、指定されたコンパレータで相互比較できない要素が含まれる場合UnsupportedOperationException- このリストでsort操作がサポートされていない場合IllegalArgumentException- (オプション)コンパレータがComparator規約に違反していることが見つかった場合- 導入されたバージョン:
- 1.8
-
clear
void clear()すべての要素をこのリストから削除します(オプションの操作)。 この呼出しが戻ると、このリストは空になります。- 定義:
clear、インタフェースCollection<E>- 例外:
UnsupportedOperationException-clearオペレーションがこのリストでサポートされない場合
-
equals
boolean equals(Object o) 指定されたオブジェクトがこのリストと等しいかどうかを比較します。 指定されたオブジェクトもリストであり、サイズが同じで、2つのリストの対応する要素がすべて等しい場合にだけtrueを返します。 (e1とe2の2つの要素は、Objects.equals(e1, e2)の場合はequalです。) つまり2つのリストは、同じ要素が同じ順序で含まれている場合に等しいものとして定義されます。 この定義により、Listインタフェースの様々な実装でequalsメソッドが正しく動作することが保証されます。- 定義:
equals、インタフェースCollection<E>- オーバーライド:
equals、クラスObject- パラメータ:
o- このリストと等しいかどうかを比較するオブジェクト- 戻り値:
- 指定されたオブジェクトがこのリストと等しい場合は
true - 関連項目:
-
hashCode
int hashCode()このリストのハッシュ・コード値を返します。 リストのハッシュ・コードは、次の計算の結果として定義されます。
これにより、int hashCode = 1; for (E e : list) hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());Object.hashCode()の一般的な契約で必要となる、list1およびlist2の2つのリストに対してlist1.equals(list2)がlist1.hashCode()==list2.hashCode()であることを意味します。- 定義:
hashCode、インタフェースCollection<E>- オーバーライド:
hashCode、クラスObject- 戻り値:
- このリストのハッシュ・コード値
- 関連項目:
-
get
E get(int index) このリスト内の指定された位置にある要素を返します。- パラメータ:
index- 返される要素のインデックス- 戻り値:
- このリスト内の指定された位置にある要素
- 例外:
IndexOutOfBoundsException- 索引が(index < 0 || index >= size())の範囲外であるかどうか
-
set
このリスト内の指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。- パラメータ:
index- 置換される要素のインデックス。element- 指定された位置に格納される要素。- 戻り値:
- 指定された位置に以前あった要素。
- 例外:
UnsupportedOperationException-set操作がこのリストでサポートされていない場合ClassCastException- 指定された要素のクラスが原因で、このリストにその要素を追加できない場合NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合IllegalArgumentException- 指定された要素のあるプロパティが原因で、このリストにその要素を追加できない場合IndexOutOfBoundsException- 索引が(index < 0 || index >= size())の範囲外であるかどうか
-
add
void add(int index, E element) このリスト内の指定された位置に、指定された要素を挿入します(オプションの操作)。 その位置とそれ以降に要素があればそれらを右に移動させ、各要素のインデックスに1を加えます。- パラメータ:
index- 指定の要素が挿入される位置のインデックスelement- 挿入される要素- 例外:
UnsupportedOperationException-addオペレーションがこのリストでサポートされない場合ClassCastException- 指定された要素のクラスが原因で、このリストにその要素を追加できない場合NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合IllegalArgumentException- 指定された要素のあるプロパティが原因で、このリストにその要素を追加できない場合IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index> size())
-
remove
E remove(int index) このリスト内の指定された位置にある要素を削除します(オプションの操作)。 後続の要素を左に移動します(インデックスから1を減算)。 リストから削除された要素が返されます。- パラメータ:
index- 削除される要素のインデックス- 戻り値:
- 指定された位置に以前あった要素。
- 例外:
UnsupportedOperationException-remove操作がこのリストでサポートされていない場合IndexOutOfBoundsException- 索引が(index < 0 || index >= size())の範囲外であるかどうか
-
indexOf
int indexOf(Object o) 指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。 より正式には、Objects.equals(o, get(i))のように最も低い索引iを戻し、そのような索引がない場合は -1を戻します。- パラメータ:
o- 検索する要素- 戻り値:
- 指定された要素がこのリスト内で最初に検出された位置のインデックス。その要素がこのリストにない場合は -1
- 例外:
ClassCastException- 指定された要素の型が、このリストと互換でない場合(オプション)NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合(オプション)
-
lastIndexOf
int lastIndexOf(Object o) 指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。 より正式には、Objects.equals(o, get(i))のように最も高い索引iを戻し、そのような索引がない場合は -1を戻します。- パラメータ:
o- 検索する要素- 戻り値:
- 指定された要素がこのリスト内で最後に検出された位置のインデックス。その要素がこのリストにない場合は -1
- 例外:
ClassCastException- 指定された要素の型が、このリストと互換でない場合(オプション)NullPointerException- 指定された要素がnullで、このリストがnull要素を許可しない場合(オプション)
-
listIterator
ListIterator<E> listIterator()このリスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。- 戻り値:
- このリスト内の要素を(適切な順序で)反復するリスト・イテレータ
-
listIterator
ListIterator<E> listIterator(int index) リスト内の指定された位置で始まる、リスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。 指定されたインデックスは、nextの最初の呼出しによって返される最初の要素を示します。previousの最初の呼出しは、指定されたインデックスから1を引いたインデックスを持つ要素を返します。- パラメータ:
index- リスト・イテレータから(next呼出しによって)返される最初の要素のインデックス- 戻り値:
- リスト内の指定された位置で始まる、リスト内の要素を(適切な順序で)反復するリスト・イテレータ
- 例外:
IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index> size())
-
subList
このリストの、指定されたfromIndex(これを含む)からtoIndex(これを含まない)までの部分のビューを返します。fromIndexとtoIndexが等しい場合は、空のリストが返されます。 返されるリストはこのリストに連動しているため、返されるリスト内での非構造的な変更はこのリストに反映され、このリスト内での変更は返されるリストに反映されます。 返されるリストは、このリストによってサポートされている、任意のリスト・オペレーションをすべてサポートします。このメソッドでは、配列に一般的に見られるような、明示的な範囲操作は必要ありません。 リストを予期する操作は、リスト全体ではなくsubListビューを渡すことで範囲操作として使用できます。 たとえば、次のイディオムは、ある範囲の要素をリストから削除します。
list.subList(from, to).clear();indexOfおよびlastIndexOfにも同様のidiomsを構成でき、CollectionsクラスのすべてのアルゴリズムをsubListに適用できます。バッキング・リスト(すなわち、このリスト)の構造が、返されたリストを経由せずに変更された場合、このメソッドで返されるリストのセマンティックスは定義されていません。 (構造の変更とは、リストのサイズが変わるような変更や、進行中のイテレーションが不正な結果に終わるような変更のことです。)
- パラメータ:
fromIndex- subListの下端点(これを含む)toIndex- subListの上端点(これを含まない)- 戻り値:
- このリスト内の指定された範囲のビュー
- 例外:
IndexOutOfBoundsException- 不正なエンドポイント索引値(fromIndex < 0 || toIndex > size || fromIndex > toIndex)
-
spliterator
default Spliterator<E> spliterator()このリスト内の要素に対するSpliteratorを作成します。Spliteratorは、Spliterator.SIZEDおよびSpliterator.ORDEREDを報告します。 実装は、追加の特性値の報告をドキュメント化する必要があります。- 定義:
spliterator、インタフェースCollection<E>- 定義:
spliterator、インタフェースIterable<E>- 実装要件:
- デフォルト実装では、次のようにlate-bindingスプライテータが作成されます:
- リストが
RandomAccessのインスタンスである場合、デフォルトの実装では、メソッドget(int)を呼び出すことによって要素を走査するスプライテータが作成されます。 そのような呼び出しが結果となるか、またはIndexOutOfBoundsExceptionとなる場合、スプライテータはfail-fastになり、ConcurrentModificationExceptionをスローします。 リストがAbstractListのインスタンスでもある場合、スプリッタはリストのmodCountフィールドを使用して、追加のfail-fast動作を提供します。 - それ以外の場合、デフォルトの実装では、リストの
Iteratorからスプリッタが作成されます。 スプリッタは、リストのイテレータのfail-fastを継承します。
- リストが
- 実装上のノート:
- 作成された
SpliteratorはさらにSpliterator.SUBSIZEDも報告します。 - 戻り値:
- このリスト内の要素に対する
Spliterator - 導入されたバージョン:
- 1.8
-
addFirst
default void addFirst(E e) このコレクションの最初の要素として要素を追加します (オプションの操作)。 この操作が正常に完了すると、指定された要素はこのコレクションのメンバーになり、発生順に最初の要素になります。- 定義:
- インタフェース
SequencedCollection<E>内のaddFirst - 実装要件:
- このインタフェースの実装では、
add(0, e)がコールされます。 - パラメータ:
e- 追加する要素- 例外:
NullPointerException- 指定された要素がnullで、このコレクションがnull要素を許可しない場合UnsupportedOperationException- このコレクション実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 21
-
addLast
default void addLast(E e) このコレクションの最後の要素として要素を追加します (オプションの操作)。 この操作が正常に完了すると、指定された要素はこのコレクションのメンバーになり、最後の要素が出現順になります。- 定義:
- インタフェース
SequencedCollection<E>内のaddLast - 実装要件:
- このインタフェースの実装では、
add(e)がコールされます。 - パラメータ:
e- 追加する要素。- 例外:
NullPointerException- 指定された要素がnullで、このコレクションがnull要素を許可しない場合UnsupportedOperationException- このコレクション実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 21
-
getFirst
default E getFirst()このコレクションの最初の要素を取得します。- 定義:
- インタフェース
SequencedCollection<E>内のgetFirst - 実装要件:
- このリストが空でない場合、このインタフェースの実装は
get(0)をコールした結果を返します。 それ以外の場合は、NoSuchElementExceptionがスローされます。 - 戻り値:
- 取得された要素
- 例外:
NoSuchElementException- このコレクションが空の場合- 導入されたバージョン:
- 21
-
getLast
default E getLast()このコレクションの最後の要素を取得します。- 定義:
- インタフェース
SequencedCollection<E>内のgetLast - 実装要件:
- このリストが空でない場合、このインタフェースの実装は
get(size() - 1)をコールした結果を返します。 それ以外の場合は、NoSuchElementExceptionがスローされます。 - 戻り値:
- 取得された要素
- 例外:
NoSuchElementException- このコレクションが空の場合- 導入されたバージョン:
- 21
-
removeFirst
default E removeFirst()このコレクションの最初の要素を削除して返します(オプションの操作)。- 定義:
- インタフェース
SequencedCollection<E>内のremoveFirst - 実装要件:
- このリストが空でない場合、このインタフェースの実装は
remove(0)をコールした結果を返します。 それ以外の場合は、NoSuchElementExceptionがスローされます。 - 戻り値:
- 削除される要素
- 例外:
NoSuchElementException- このコレクションが空の場合UnsupportedOperationException- このコレクション実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 21
-
removeLast
default E removeLast()このコレクションの最後の要素を削除して返します(オプションの操作)。- 定義:
- インタフェース
SequencedCollection<E>内のremoveLast - 実装要件:
- このリストが空でない場合、このインタフェースの実装は
remove(size() - 1)をコールした結果を返します。 それ以外の場合は、NoSuchElementExceptionがスローされます。 - 戻り値:
- 削除される要素
- 例外:
NoSuchElementException- このコレクションが空の場合UnsupportedOperationException- このコレクション実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 21
-
reversed
このコレクションの逆順viewを返します。 返されるビュー内の要素の出現順序は、このコレクション内の要素の出現順序の逆です。 逆の順序付けは、返されるビューのビュー・コレクションに含まれるすべての順序依存操作に影響します。 コレクション実装でこのビューの変更が許可されている場合、ベースとなるコレクションへの変更"ライトスルー"。 実装によっては、基礎となるコレクションに対する変更が、この逆方向ビューに表示される場合と表示されない場合があります。- 定義:
- インタフェース
SequencedCollection<E>内のreversed - 実装要件:
- このインタフェースの実装では、逆順のリスト・ビューが返されます。 ビューの
reversed()メソッドは、このリストへの参照を返します。 ビューに対するその他の操作は、このリストのpublicメソッドへのコールを介して実装されます。 ビューのコールとこのリストのコールとの正確な関係は未指定です。 ただし、順序依存操作は、通常、反対の方向で適切なメソッドに委任するかのように動作します。 たとえば、ビューでgetFirstをコールすると、このリストでgetLastがコールされる場合があります。 - 戻り値:
- このコレクションの逆順ビュー(
Listとして) - 導入されたバージョン:
- 21
-
of
static <E> List<E> of()ゼロ要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- 戻り値:
- 空の
List - 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1) 1つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 単一要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2) 2つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3) 3つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4) 4つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5) 5つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素e5- 第5要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6) 6つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素e5- 第5要素e6- 第6要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7) 7つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素e5- 第5要素e6- 第6要素e7- 第7要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8) 8つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素e5- 第5要素e6- 第6要素e7- 第7要素e8- 第8要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9) 9つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素e5- 第5要素e6- 第6要素e7- 第7要素e8- 第8要素e9- 第9要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10) 10個の要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- 型パラメータ:
E-Listの要素型- パラメータ:
e1- 最初の要素e2- 第2要素e3- 第3要素e4- 第4要素e5- 第5要素e6- 第6要素e7- 第7要素e8- 第8要素e9- 第9要素e10- 10番目の要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合- 導入されたバージョン:
- 9
-
of
@SafeVarargs static <E> List<E> of(E... elements) 任意の数の要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なLists」を参照してください。- APIのノート:
- このメソッドは、引数として単一の配列も受け入れます。 結果リストの要素タイプは配列のコンポーネント・タイプとなり、リストのサイズは配列の長さと等しくなります。 配列である単一の要素を含むリストを作成するには、次の手順を実行します:
これにより、かわりにString[] array = ... ; List<String[]> list = List.<String[]>of(array);List.of(E)メソッドが呼び出されます。 - 型パラメータ:
E-Listの要素型- パラメータ:
elements- リストに含まれる要素- 戻り値:
- 指定された要素を含む
List - 例外:
NullPointerException- 要素がnullの場合、または配列がnullの場合- 導入されたバージョン:
- 9
-
copyOf
static <E> List<E> copyOf(Collection<? extends E> coll) 指定されたCollectionの要素をその反復順序で含む「変更不可能なList」を返します。 指定されたCollectionはnullであってはならず、null要素を含んではいけません。 指定されたCollectionがその後に変更された場合、返されたListはそのような変更を反映しません。- 実装上のノート:
- 指定されたコレクションが「変更不可能なList」の場合、通常、copyOfをコールしてもコピーは作成されません。
- 型パラメータ:
E-Listの要素型- パラメータ:
coll- 要素が描画されるCollectionはnullでなくてはなりません- 戻り値:
- 与えられた
Collectionの要素を含むList - 例外:
NullPointerException- collがnullの場合、またはnullが含まれている場合- 導入されたバージョン:
- 10
-