在Java中,可以使用Stream的groupingBy方法按照枚举类型列表进行流分组。以下是一个示例代码:
首先,假设我们有一个枚举类型为Color:
enum Color {
RED, GREEN, BLUE;
}
然后,假设我们有一个包含颜色的对象列表:
List
现在,我们想要按照颜色进行分组。我们可以使用Stream的groupingBy方法,将颜色作为分组函数:
Map> groupedObjects = objects.stream()
.collect(Collectors.groupingBy(Object::getColor));
这将返回一个Map,键为颜色,值为具有相同颜色的对象列表。
完整的示例代码如下:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
enum Color {
RED, GREEN, BLUE;
}
class Object {
private Color color;
public Object(Color color) {
this.color = color;
}
public Color getColor() {
return color;
}
}
public class Main {
public static void main(String[] args) {
List
以上代码将输出以下结果:
RED: [Object@1f32e575, Object@3da9ae5d]
GREEN: [Object@17f52b8, Object@5caf905d]
BLUE: [Object@4b67cf4d]
上一篇:按照枚举而不是枚举值排序
下一篇:按照枚举顺序排序