Java Stream提供了一套对数据进行操作的解决方法。
对数据的处理包含:分组
,转化
,归并
,统计
等
首先看分组
![](https://img.haomeiwen.com/i14842973/203adef727a7bd89.png)
首先定义形状类:
@Data
public class Shape {
private String type;
private String color;
public Shape(String type, String color) {
this.type = type;
this.color = color;
}
}
构建列表进行测试:
public class Tester {
public static void main(String[] args) {
List<Shape> shapeList = new ArrayList<>();
shapeList.add(new Shape("圆形", "红色"));
shapeList.add(new Shape("三角形", "红色"));
shapeList.add(new Shape("三角形", "绿色"));
shapeList.add(new Shape("圆形", "绿色"));
shapeList.add(new Shape("正方形", "蓝色"));
shapeList.add(new Shape("正方形", "红色"));
shapeList.add(new Shape("正方形", "绿色"));
Map<String, List<Shape>> result =
shapeList
.stream()
.collect(Collectors.groupingBy(Shape::getColor));
System.out.println(result);
}
}
分组结果如下:
{蓝色=[Shape(type=正方形, color=蓝色)],
绿色=[Shape(type=三角形, color=绿色), Shape(type=圆形, color=绿色), Shape(type=正方形, color=绿色)],
红色=[Shape(type=圆形, color=红色), Shape(type=三角形, color=红色), Shape(type=正方形, color=红色)]}
网友评论