JAVA8 STREAM COLLECT GROUPBY分组实例解析

网友投稿 435 2022-12-17


JAVA8 STREAM COLLECT GROUPBY分组实例解析

这篇文章主要介绍了java8 STREAM COLLECT GROUPBY分组实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

实体类People,有个返回list的buildPeopleList方法,方便测试。

import lombok.AllArgsConstructor;

import lombok.Builder;

import lombok.Data;

import lombok.NoArgsConstructor;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

/**

* @author: rhyme

* @date: 2019-09-26 17:31

* @topic: "主题"

* @description: "描述"

*/

@Data

@NoArgsConstructor

@AllArgsConstructor

@Builder

public class People {

private String name;

private String character;

private String sex;

private int age;

public static People buildDefault() {

return People.builder().name("LuoTianyan").character("optimistic").sex("female").age(24).build();

}

public static List buildPeopleList() {

People p1 = People.builder().name("LuoTianyan").character("optimistic").sex("female").age(24).build();

People p2 = People.builder().name("Zhang").character("optimistic").sex("female").age(23).build();

People p3 = People.builder().name("Hu").character("shy").sex("female").age(25).build();

People p4 = People.builder().name("Y").character("Righteous").sex("male").age(24).build();

return new ArrayList<>(Arrays.asList(p1, p2, p3, p4));

}

}

测试类GroupByTest,分别根据性别分组,统计各个性别人数,以及各个性别映射姓名。

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import org.springframework.util.CollectionUtils;

import java.util.List;

import java.util.Map;

import java.util.function.BiConsumer;

import java.util.stream.Collectors;

/**

* @author: rhyme

* @date: 2019-10-14 15:59

* @topic: "主题"

* @description: "描述"

*/

public class GroupByTest {

private List people;

private BiConsumer soutKV;

private Map result;

@Before

public void init() {

people = People.buildPeopleList();

soutKV = (k, v) -> System.out.println(k + ":" + v);

}

@After

public void soutResult() {

if (!CollectionUtils.isEmpty(result)) {

result.forEach(soutKV);

}

}

/**

* 根据性别分组

*/

@Test

public void groupBySex() {

result = people.stream()http://.collect(

Collectors.groupingBy(People::getSex)

);

}

/**

* 分别统计不同性别各自的人数

*/

@Test

public void groupBySexCount() {

result = people.stream().collect(

Collectors.groupingBy(People::getSex, Collectors.counting()

));

}

/**

* 分别统计不同性别各自的name列表

*/

@Test

public void groupBySexName() {

result = people.stream().collect(

Collectors.grouQSGRcFbQYpingBy(

People::getSex,

Collectors.mapping(People::getName, Collectors.toSet())

));

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 数学计算的具体使用
下一篇:SpringBoot Session共享实现图解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~