概述
本文通过案例,介绍了java 1.8 lambda表达式常用的一些方法及使用场景
后续会继续扩展
先定义一个People类
public class People {
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private Integer sex;
/**
* 所属省份
*/
private String province;
/**
* 存款
*/
private Integer money;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getMoney() {
return money;
}
public void setMoney(Integer money) {
this.money = money;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
@Override
public String toString() {
return "People{" +
"id=" + id +
", name='" + name + ''' +
", sex=" + sex +
", province='" + province + ''' +
", money=" + money +
'}';
}
}
有个People的list, 使用lambda表达式依次做以下操作
循环操作
peopleArrayList.forEach(item -> {
// doSomething
});
筛选属性
场景: 将所有的人员id取出来
List<Integer> peopleIds = peopleArrayList.stream().map(people -> people.getId()).collect(Collectors.toList());
去重
场景: 将所有的人员id取出来并去重
List<Integer> peopleIds = peopleArrayList.stream().map(people -> people.getId()).distinct().collect(Collectors.toList());
过滤
场景: 过滤出性别为男或女的人员
List<People> peopleList = peopleArrayList.stream().filter(p -> p.getSex() == 0).collect(Collectors.toList());
排序
场景: 按id大小倒序排序(从小到大)
peopleArrayList.sort((p1, p2) -> p2.getId().compareTo(p1.getId()));
分组
场景1: 按性别分组 (单字段)
Map<Integer, List<People>> peopleMap = peopleArrayList.stream().collect(Collectors.groupingBy(People::getSex));
场景2: 按性别和省份分组 (多字段)
Map<String, List<People>> peopleMap = peopleArrayList.stream().collect(Collectors.groupingBy(people -> people.getSex() + "#" + people.getProvince()));
统计
场景: 统计所有人员的存款总和
int型
int sum = peopleArrayList.stream().mapToInt(People::getMoney).sum();
long型
long sum = peopleArrayList.stream().mapToLong(People::getMoney).sum();
double型
double sum = peopleArrayList.stream().mapToDouble(People::getMoney).sum();
最后
以上就是开心斑马为你收集整理的java 8 lambda表达式常用方法及使用场景的全部内容,希望文章能够帮你解决java 8 lambda表达式常用方法及使用场景所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复