■固定の配列から可変のリストに変換したいとき
Arrays.asList
List<E> 変数名 = new ArrayList<>(Arrays.asList( E型の配列 ));
Arrays.asListと同じく、カッコ内に渡された配列をリストに変換する「List.of」がある。
Arrays.asListは、add、removeができないがset(変更)はできる。
一方で、List.ofはまったくもって不変のリスト。
■sublistとclearの合わせ技で、指定したインデックス範囲の要素を削除できる
subList( 第一引数start, 第二引数end-1)
・第一引数:取り出したい先頭のインデックス番号
・第二引数:ここで指定したインデックスのひとつ前で取り出し終了
clear
全ての要素を削除する
//numbersAには[0, 1, 2, 3, 4]の配列が詰め込まれているとして…
numbersA.subList(1, 3).clear(); // 1, 2 が削除される
■リストの昇順降順
import java.util.Comparator;
// numbersBを自然順序(昇順)に並べ替え
numbersB.sort(Comparator.naturalOrder());
// numbersBを自然順序(降順)に並べ替え
numbersB.sort(Comparator.reverseOrder());
■ラムダ式とforEachメソッド
・forEachメソッドはリスト内の要素を一つづつ取得し、各要素に対して処理を行う。
・ラムダ式は、forEachと見比べて考えるとわかりやすい。
▼拡張for文の場合
for ( 型 リスト内の要素 : リスト ) {
要素に対する処理
};
▼ラムダ式の場合
リスト.forEach( リスト内の要素 -> {
要素に対する処理 });
■contains()メソッド
対象のリスト.contains(調べたい値)
・対象のリスト内の要素に、カッコ内の引数の値(数値や文字列)があるか調べる。
・答えはtrue/falseで返ってくる
List<Integer> intList = new ArrayList<>(List.of(0, 1));
// リスト内に引数の要素を含む場合は`true`、含まない場合は`false`を返す
intList.contains(1) // true
intList.contains(2) // false