java分组后排序
要对Java中的元素进行分组后排序,可以使用Collectors.groupingBy()方法来实现分组操作,然后再使用Collectors.collectingAndThen()方法来对每个分组进行排序。
下面是一个示例代码,展示如何对一个整数列表进行分组后排序:
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(4, 2, 7, 1, 5, 3, 9, 8, 6);
Map<Integer, List<Integer>> groupedAndSortedNumbers = numbers.stream()
.collect(Collectors.groupingBy(number -> number % 2,
Collectors.collectingAndThen(Collectors.toList(), sortedList -> {
sortedList.sort(Integer::compareTo);
return sortedList;
})));
System.out.println(groupedAndSortedNumbers);
}
}
在上述代码中,我们首先使用Collectors.groupingBy()方法根据数字的奇偶性进行分组。然后,我们使用Collectors.collectingAndThen()方法对每个分组中的元素进行排序。在这个例子中,我们使用sortedList.sort(Integer::compareTo)对列表进行排序。
输出结果将是一个Map对象,其中键是奇偶性,值是对应分组的排序后的数字列表。例如,上述代码的输出结果可能是{0=[2, 4, 6, 8], 1=[1, 3, 5, 7, 9]}。
请注意,这只是一个示例代码,可以根据实际需求进行修改和扩展
原文地址: https://www.cveoy.top/t/topic/i1NW 著作权归作者所有。请勿转载和采集!