listに関するmethod
Javaの List<String> でよく使われるメソッドを、**「中身を調べる」「変更する」「並び替える」**などの目的別に整理しました。
1. 基本的な操作(要素の追加・削除・取得)¶
これらは ArrayList などの変更可能なリストで頻繁に使われます。
add(E e): 末尾に要素を追加します。add(int index, E element): 指定した位置に要素を割り込ませます。get(int index): 指定した位置の要素を取得します(配列の[i]に相当)。set(int index, E element): 指定した位置の要素を書き換えます。remove(int index)/remove(Object o): 指定した位置、または特定の値を削除します。
2. 状態を調べる(検索・確認)¶
リストの中に何が入っているか、何個あるかを確認します。
size(): リストの要素数を返します(配列の.lengthに相当)。isEmpty(): リストが空(サイズ0)ならtrueを返します。contains(Object o): 指定した文字列がリストに含まれているかbooleanで返します。indexOf(Object o): 指定した文字列が最初に出てくるインデックスを返します(なければ-1)。
3. リスト全体への操作(一括処理)¶
複数のデータをまとめて扱います。
addAll(Collection c): 別のリストなどを丸ごと末尾に追加します。clear(): すべての要素を削除して空にします。containsAll(Collection c): 指定したコレクションの要素がすべて含まれているか確認します。
4. 並び替え・加工(Java 8以降の便利関数)¶
モダンなJavaでよく使われる、関数型の書き方です。
-
sort(Comparator c): リスト自体を並び替えます。 -
replaceAll(UnaryOperator operator): 全要素を一括変換します。 -
removeIf(Predicate filter): 条件に合うものを一括削除します。
5. 変換操作¶
他の型へ移し替えるときに使います。
toArray(): 配列に変換します。subList(int from, int to): 指定した範囲を切り出した「部分リスト」を返します。stream(): Stream APIを開始します(先述のfilterやmapが使えます)。
注意:不変リストでの制限¶
List.of("A", "B") や Arrays.asList(...) で作ったリストに対して、add() や remove()、sort() などの**中身を書き換える関数**を呼ぶと、実行時に UnsupportedOperationException というエラーになります。
サンプルコード¶
Java
List<String> fruits = new ArrayList<>(List.of("banana", "apple", "cherry"));
fruits.add("apricot"); // 追加
fruits.sort(Comparator.naturalOrder()); // 並び替え: [apple, apricot, banana, cherry]
boolean hasApple = fruits.contains("apple"); // 検索: true
fruits.removeIf(s -> s.length() > 6); // 6文字より長い cherry を削除
System.out.println(fruits); // [apple, apricot, banana]
「特定の条件でリストを2つに分けたい」や「重複だけを取り除きたい」など、やりたい具体的な処理はありますか?