- 型パラメータ:
E
- このリスト内に存在する要素の型
- すべてのスーパー・インタフェース:
Collection<E>
,Iterable<E>
- 既知のすべての実装クラス:
AbstractList
,AbstractSequentialList
,ArrayList
,AttributeList
,CopyOnWriteArrayList
,LinkedList
,RoleList
,RoleUnresolvedList
,Stack
,Vector
セットとは異なり、通常、リストは重複する要素を許可します。 つまり、リストは通常、e1.equals(e2)
となるようなe1
とe2
の要素のペアを許可します。また、null要素を許可する場合には、通常は複数のnull要素を許可します。 ユーザーが重複する値を挿入しようとしたときに実行時の例外をスローすることにより、重複する値を禁止するリストを実装する場合もありますが、このように使われることはほとんどありません。
List
インタフェースは、iterator
、add
、remove
、equals
、およびhashCode
の各メソッドの規約に対して、Collection
インタフェースで指定されているものに加えてさらに条項を追加します。 便宜上、ほかの継承メソッドの宣言もここに含まれます。
List
インタフェースは、位置を指定して(インデックスで)リストの要素にアクセスするための4つのメソッドを提供します。 Java配列と同様に、Listのインデックスは0から始まります。 一部の実装(LinkedList
クラスなど)では、これらのオペレーションの実行にはインデックス値に比例した時間がかかる場合があります。 このため、呼出し側がこうした実装について知らない場合は、リストにインデックスを付けるよりも、リスト内の要素を反復してください。
List
インタフェースは、Iterator
インタフェースが提供する通常のオペレーションに加えて、要素の挿入、置換、および双方向アクセスを可能にする、ListIterator
という特殊なイテレータを提供します。 リスト内の指定した位置から開始するリスト・イテレータを取得するためのメソッドが提供されています。
List
インタフェースは、指定したオブジェクトを検索するための2つのメソッドを提供します。 パフォーマンスの観点からは、これらのメソッドは注意して使用する必要があります。 多くの実装でこれらのメソッドは、時間のかかる線形探索を実行します。
リスト内の任意の位置に複数の要素を効率的に挿入および削除するために、List
インタフェースは2つのメソッドを提供します。
ノート: リストにリスト自体を要素として格納することも可能ですが、十分注意してください。そのようなリストではequals
メソッドおよびhashCode
メソッドの動作は保証されません。
リストの実装には、格納できる要素に制限があるものもあります。 たとえば、null要素を禁止する実装や、null要素の型に制限がある実装もあります。 不適格な要素を追加しようとすると、通常NullPointerException
またはClassCastException
のような非チェック例外がスローされます。 不適格な要素を照会しようとすると、例外がスローされる場合や、ただfalseを返す場合もあります。前者の動作を実行する実装もあれば、後者の動作を実行する実装もあります。 もう少し一般的に言うと、不適当な要素を処理しようとしてリストへの挿入が完了しない場合、例外がスローされるか成功するかは実装の任意です。 このインタフェースの仕様では、そうした例外は「任意」と記載されています。
変更不可能なリスト
List.of
およびList.copyOf
静的ファクトリ・メソッドは、変更不可能なリストを作成する便利な方法を提供します。 これらのメソッドによって作成されたList
インスタンスには、次の特性があります:
- 彼らはunmodifiableです。 要素を追加、削除、または置換することはできません。 Listで任意のmutatorメソッドを呼び出すと、常に
UnsupportedOperationException
がスローされます。 ただし、含まれている要素自体が変更可能な場合は、Listコンテンツが変更されているように見えることがあります。 - それらは
null
要素を許可しません。null
要素でそれらを作成しようとすると、NullPointerException
になります。 - すべての要素が直列化可能な場合、これらは直列化可能です。
- リスト内の要素の順序は、提供された引数の順序、または指定された配列内の要素の順序と同じです。
- リストとその
subList
ビューは、RandomAccess
インタフェースを実装します。 - 彼らはvalue-basedです。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 ファクトリは、新しいインスタンスを作成したり既存のインスタンスを再利用することは自由です。
- それらは、「直列化された形式」ページで指定されたとおりに直列化されます。
このインタフェースは、Java Collections Frameworkのメンバーです。
-
メソッドのサマリー
修飾子と型メソッド説明void
このリスト内の指定された位置に、指定された要素を挿入します(オプションの操作)。boolean
指定された要素をこのリストの最後に追加します(オプションの操作)。boolean
addAll
(int index, Collection<? extends E> c) 指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します(オプションの操作)。boolean
addAll
(Collection<? extends E> c) 指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序で、このリストの最後に追加します(オプションの操作)。void
clear()
すべての要素をこのリストから削除します(オプションの操作)。boolean
指定された要素がこのリストに含まれている場合にtrue
を返します。boolean
containsAll
(Collection<?> c) 指定されたコレクションのすべての要素がこのリストに含まれている場合にtrue
を返します。static <E> List<E>
copyOf
(Collection<? extends E> coll) 指定されたCollectionの要素をその反復順序で含む「変更不可能なリスト」を返します。boolean
指定されたオブジェクトがこのリストと等しいかどうかを比較します。get
(int index) このリスト内の指定された位置にある要素を返します。int
hashCode()
このリストのハッシュ・コード値を返します。int
指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。boolean
isEmpty()
このリストに要素がない場合に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
指定された要素がこのリストにあれば、その最初のものをリストから削除します(オプションの操作)。boolean
removeAll
(Collection<?> c) このリストから、指定されたコレクションに含まれる要素をすべて削除します(オプションの操作)。default void
replaceAll
(UnaryOperator<E> operator) このリストの各要素を、その要素に演算子を適用した結果で置換します。boolean
retainAll
(Collection<?> c) このリスト内で、指定されたコレクションに含まれている要素だけを保持します(オプションの操作)。このリスト内の指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。int
size()
このリスト内にある要素の数を返します。default void
sort
(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)
などの少なくとも1つの要素e
が含まれている場合にのみ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
- このリストが変更できない場合。 実装は、要素を置換できない場合、または一般的には変更がサポートされていない場合、この例外をスローすることがある。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
- リストのリスト・イテレータがset
操作をサポートしない場合。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()
の一般規約によって要求されるように、任意の2つのリストlist1
とlist2
で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
でも同様のイディオムを構築して、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
のインスタンスでもある場合、spliteratorはリストmodCount
フィールドを使用して追加のfail-fast動作を提供します。 - それ以外の場合、デフォルトの実装では、リスト
Iterator
からスプライテータが作成されます。 spliteratorはリスト・イテレータのfail-fastを継承します。
- リストが
- 実装上のノート:
- 作成された
Spliterator
はさらにSpliterator.SUBSIZED
も報告します。 - 戻り値:
- このリスト内の要素に対する
Spliterator
- 導入されたバージョン:
- 1.8
-
of
static <E> List<E> of()ゼロ要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
E
-List
要素型- 戻り値:
- 空の
List
- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1) 1つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
E
-List
要素型- パラメータ:
e1
- 単一要素- 戻り値:
- 指定された要素を含む
List
- 例外:
NullPointerException
- 要素がnull
の場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2) 2つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
E
-List
要素型- パラメータ:
e1
- 最初の要素e2
- 第2要素- 戻り値:
- 指定された要素を含む
List
- 例外:
NullPointerException
- 要素がnull
の場合- 導入されたバージョン:
- 9
-
of
static <E> List<E> of(E e1, E e2, E e3) 3つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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つの要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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個の要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 型パラメータ:
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) 任意の数の要素を含む変更不可能なリストを返します。 詳細については、「変更不可能なリスト」を参照してください。- 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の要素をその反復順序で含む「変更不可能なリスト」を返します。 指定されたCollectionはnullであってはならず、null要素を含んではいけません。 指定されたCollectionがその後に変更された場合、返されたListはそのような変更を反映しません。- 実装上のノート:
- 指定されたCollectionが「変更不可能なリスト」の場合、copyOfの呼び出しは一般にコピーを作成しません。
- 型パラメータ:
E
-List
要素型- パラメータ:
coll
- 要素が描画されるCollection
はnullでなくてはなりません- 戻り値:
- 与えられた
Collection
の要素を含むList
- 例外:
NullPointerException
- collがnullの場合、またはnullが含まれている場合- 導入されたバージョン:
- 10
-