Java Listを規則的にグループ分けする方法【実装例】

Java Stream APIのCollectors.groupingBy()メソッドを使用すると、リストを特定のルールに従ってグループ化することができます。このメソッドは、リスト内の要素を指定されたルールに従ってグループ化し、グループ化された要素のリストを値とするMapオブジェクトを返します。

以下は簡単な例です。整数のリストがあるとします。整数を奇数と偶数にグループ分けしたいとします。

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);

        Map<String, List<Integer>> groupedNumbers = numbers.stream()
                .collect(Collectors.groupingBy(number -> number % 2 == 0 ? "Even" : "Odd"));

        System.out.println(groupedNumbers);
    }
}

上記の例では、Stream APIのcollect()メソッドとgroupingBy()メソッドを使用し、要素の奇数偶数に基づいてグループ化して、結果をMapオブジェクトに格納しました。出力結果は以下の通りです:

{Even=[2, 4, 6, 8], Odd=[1, 3, 5, 7, 9]}

具体の要件に応じて、異なるルールでリストをグループ分けし、その結果をさらに処理することができます。

bannerAds