ArrayList: 可変長リスト
最も使うコレクション。配列と違いサイズ可変。
List
順序付きコレクション。
ジェネリクス
<T> で型を指定。
Stream
関数型スタイルの処理。
ArrayList
import java.util.ArrayList;import java.util.List;
// ArrayList の作成List<String> names = new ArrayList<>();
// 要素の追加names.add("Alice");names.add("Bob");names.add("Carol");
// 要素の取得String first = names.get(0); // Alice
// サイズint size = names.size(); // 3
// 削除names.remove("Bob");names.remove(0); // インデックスで削除
// ループfor (String name : names) { System.out.println(name);}実行結果
Alice\nCarol
Bad
// ❌ Bad: 生の型(raw type)ArrayList list = new ArrayList();list.add("text");list.add(123); // 型安全性がないGood
// ✅ Good: ジェネリクス使用List<String> list = new ArrayList<>();list.add("text");// list.add(123); // コンパイルエラーパターン
// Stream APIList<Integer> numbers = List.of(1, 2, 3, 4, 5);
// フィルタList<Integer> evens = numbers.stream() .filter(n -> n % 2 == 0) .toList(); // [2, 4]
// マップList<Integer> doubled = numbers.stream() .map(n -> n * 2) .toList(); // [2, 4, 6, 8, 10]
// 集約int sum = numbers.stream() .reduce(0, Integer::sum); // 15
// 便利メソッドList.of(1, 2, 3); // 不変リスト作成List.copyOf(mutableList); // 不変コピーCollections.sort(list); // ソートCollections.reverse(list); // 逆順 Tip: List<T> として宣言。実装を隠す。
合格ライン
ジェネリクスを使える
Stream で filter/map できる
参考リンク
演習課題
課題1: ArrayList 操作
要素の追加・削除・検索を実装してください。
課題2: Stream 変換
Stream で filter と map を使ってデータを変換してください。