Java | 「map/filter/sorted/groupingBy」だけを図解で理解する教材

Java Java
スポンサーリンク

では、「map / filter / sorted / groupingBy」を図解で直感的に理解する教材を作ります。
文章だけでなく、処理の流れを矢印で表す図解スタイルで解説します。


1. filter() — 条件で絞り込み

入力リスト: [1, 2, 3, 4, 5]
filter(x -> x % 2 == 0)
         │
         ▼
出力リスト: [2, 4]
  • 意味:条件に合う要素だけ残す
  • 使いどころ:条件抽出(例:売上100以上、在庫が0でない商品など)
List<Integer> nums = List.of(1,2,3,4,5);
List<Integer> evens = nums.stream()
                          .filter(x -> x % 2 == 0)
                          .toList();
Java

2. map() — 要素を変換

入力リスト: ["alice", "bob", "charlie"]
map(name -> name.toUpperCase())
         │
         ▼
出力リスト: ["ALICE", "BOB", "CHARLIE"]
  • 意味:各要素を別の値に変換
  • 使いどころ:文字列加工、DTO変換、数値計算など
List<String> names = List.of("alice", "bob", "charlie");
List<String> upper = names.stream()
                          .map(String::toUpperCase)
                          .toList();
Java

3. sorted() — 並び替え

入力リスト: [5, 2, 9, 1]
sorted()
     │
     ▼
出力リスト: [1, 2, 5, 9]

または

sorted(Comparator.reverseOrder())
     │
     ▼
出力リスト: [9, 5, 2, 1]
  • 意味:昇順・降順に並び替え
  • 使いどころ:ランキング表示、日付順、スコア順
List<Integer> nums = List.of(5,2,9,1);
List<Integer> sorted = nums.stream()
                           .sorted()
                           .toList();
Java

4. groupingBy() — グループ分け(集計)

入力リスト: ["Alice:DeptA", "Bob:DeptB", "Charlie:DeptA"]
groupingBy(department)
          │
          ▼
出力マップ:
DeptA → ["Alice", "Charlie"]
DeptB → ["Bob"]
  • 意味:特定のキーで分類して Map にまとめる
  • 使いどころ:部署ごとの人数集計、カテゴリ別データ集計
class Employee {
    String name;
    String dept;
    Employee(String n, String d){ name = n; dept = d; }
}

List<Employee> employees = List.of(
    new Employee("Alice","DeptA"),
    new Employee("Bob","DeptB"),
    new Employee("Charlie","DeptA")
);

Map<String, List<Employee>> grouped = employees.stream()
    .collect(Collectors.groupingBy(e -> e.dept));
Java

5. 全体イメージ(処理の流れ)

入力リスト
   │
   ├─ filter()   → 条件で絞り込み
   │
   ├─ map()      → 要素を変換
   │
   ├─ sorted()   → 並び替え
   │
   └─ collect()  → リストやマップにまとめる
  • groupingBy() は collect の中で分類
  • 矢印の流れで「左から右へ処理が順に流れる」と考えると理解しやすい

覚え方のコツ

メソッドキーワード
filter選ぶ(条件に合うものだけ)
map変える(加工・変換)
sorted並べる(昇順・降順)
groupingByまとめる(グループ分け)
  • 流れ順に覚えると自然
    1. filter(選ぶ)
    2. map(変える)
    3. sorted(並べる)
    4. collect / groupingBy(まとめる)

💡 実務イメージ例

  • 売上データ:filter → 条件絞り込み(売上>100)
  • 商品名:map → 大文字化
  • 売上日:sorted → 日付順に並べ替え
  • 部署別:groupingBy → 集計表作成
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました