Java8 Stream简单应用

在MySQL或oracle中统计可使用group by函数,即可实现如分别统计男女生的成绩。

实现方式一、SQL查询

用SQL实现起来很简单,直接查询用户表t_user,按照性别sex分组即可。

select 
	sum(score) 
from
 	t_user
where 1 = 1
group by sex
实现方式二、Java代码实现

在Java8中可使用 Stream流实现
定义User类

class User{
    private int score;
    private String sex;

    public User(int score, String sex) {
        this.score = score;
        this.sex = sex;
    }

    public void setScore(int score) {
        this.score = score;
    }

    public int getScore() {
        return score;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

业务代码

 ArrayList<User> list= new ArrayList<User>();
 list.add(new User(99,"1"));
 list.add(new User(89,"2"));
 list.add(new User(90,"1"));
 Map<String, List<User>> strAttr = list.stream().collect(Collectors.groupingBy(t -> t.getSex()));
 System.out.println("strAttr"+ JSONFormat.quoteString(String.valueOf(strAttr)));

控制台打印结果,按照性别分为两组
Java8 Stream简单应用_第1张图片

IDEA 快捷键

alter + insert get set 生成

你可能感兴趣的:(后端开发,数据处理,java)