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]}
具体の要件に応じて、異なるルールでリストをグループ分けし、その結果をさらに処理することができます。