導入
「曜日の一覧」のように 絶対に変更されたくないリスト を作りたいとき、ArrayList だと、うっかり add や remove されて中身が変わってしまう危険があります。そんなときに便利なのが List.of です。
説明
List.of(要素, 要素, ...) は、指定した要素を持つ 読み取り専用のリスト をその場で作れます。
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> days = List.of("月", "火", "水", "木", "金");
System.out.println(days.size());
for (String day : days) {
System.out.println(day);
}
}
}
new ArrayList<>() を作って何度も add する手間なく、1行でリストを作れます。size()・get()・拡張forでの走査は、ArrayList と同じように使えます。本物のJavaでは、List.of で作ったリストに add() しようとすると UnsupportedOperationException が発生し、変更をブロックしてくれます。「これは読み取り専用のデータだ」という意図を伝えるために使いましょう。
やってみよう
下のエディタで List.of の中身を変えて実行し、ArrayList と同じ感覚で読み取れることを確認しましょう。
演習
List<String> colors を List.of で作り、"赤"・"青"・"黄" を要素にしてください。size() の結果と、get(2)(3番目の要素)の結果を表示してください。
ヒント1を見る
List<String> colors = List.of("赤", "青", "黄"); と書きます。
ヒント2を見る
System.out.println(colors.size()); のあと System.out.println(colors.get(2));(0始まりなので get(2) は3番目の要素です)。