Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。
一、利用流和Lambda表达式对List集合进行处理
1.List集合遍历
// item:可以是任意值。类似于for循环中的循环值
dataList.forEach(item -> {
//设置值
item.setName(item.getName()+"测试");;
//输出语句
System.out.println(item.toString());
});
}
2.统计List集合
sum(),max(),min(),average() 。
mapToInt() 转换成int。还有其他类型转换。如:double。
int rowCount = list.stream().mapToInt(Paper::getRow).sum();
3.对List集合分组
Collectors.groupingBy(属性名)
Map> map = list.stream().collect(Collectors.groupingBy(Product::getType));
4.多重分组
Collectors.groupingBy(属性,Collectors.groupingBy(属性))
Map>> map2 = list.stream().collect(Collectors.groupingBy(t->t.getName(),Collectors.groupingBy(t->t.getType())));
5.map(), 提取对象中的某一元素. 用每一项来获得属性(也可以直接用 对象::get属性())
List mapList1 = list.stream().map(Product::getName).collect(Collectors.toList());
List mapList2 = list.stream().map(item->item.getName()).collect(Collectors.toList());
6.过滤
filter(item->{}) item为每一项。 按照自己的需求来筛选list中的数据
List filterList = list.stream().filter(item->item.getPrice()>100).collect(Collectors.toList());
7. 去重
distinct() 去重;collect(Collectors.toList())。封装成集合
List distinctList = list.stream().distinct().collect(Collectors.toList());