JAVA8流收集GROUPBY分组实例解析

  

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

  

实体类人,有个返回列表的buildPeopleList方法,方便测试。

        进口lombok.AllArgsConstructor;   进口lombok.Builder;   进口lombok.Data;   进口lombok.NoArgsConstructor;      进口java.util.ArrayList;   进口java.util.Arrays;   进口并不知道;/* *   * @author:押韵   * @date: 2019-09-26 17:31   * @topic:“主题”   * @description:“描述”   */@ data   @NoArgsConstructor   @AllArgsConstructor   @Builder   公共类人{   私人字符串名称;      私人字符串字符;      私人字符串性;      私人int年龄;      公共静态人buildDefault () {   返回People.builder () . name (LuoTianyan) .character .sex(“乐观”)(“女性”).age (24) .build ();   }      公共静态ListbuildPeopleList () {   人p1=People.builder () . name (LuoTianyan) .character .sex(“乐观”)(“女性”).age (24) .build ();   人p2=People.builder () . name(张).character .sex(“乐观”)(“女性”).age (23) .build ();   人p3=People.builder () . name(胡).character .sex(“害羞”)(“女性”).age (25) .build ();   人p4=People.builder () . name (Y) .character .sex(“义人”)(“男性”).age (24) .build ();   返回新ArrayList<祝辞(数组。asList (p1, p2, p3, p4));   }   }      

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

        进口org.junit.After;   进口org.junit.Before;   进口org.junit.Test;   进口org.springframework.util.CollectionUtils;      进口并不知道;   进口java.util.Map;   进口java.util.function.BiConsumer;   进口java.util.stream.Collectors;/* *   * @author:押韵   * @date: 2019-10-14 15:59   * @topic:“主题”   * @description:“描述”   */公开课GroupByTest {   私人List人;   私人BiConsumer soutKV;   私人地图结果;      @Before   公共空间init () {   人=People.buildPeopleList ();   soutKV=(k、v)→system . out。println (k +“:”+ v);   }      @After   公共空间soutResult () {   如果(! CollectionUtils.isEmpty(结果)){   result.forEach (soutKV);   }   }/* *   *根据性别分组   */@Test   公共空间groupBySex () {   结果=people.stream () .collect (   Collectors.groupingBy (:: getSex)   );   }/* *   *分别统计不同性别各自的人数   */@Test   公共空间groupBySexCount () {   结果=people.stream () .collect (   收藏家。groupingBy(人::getSex Collectors.counting ()   ));   }/* *   *分别统计不同性别各自的名字列表   */@Test   公共空间groupBySexName () {   结果=people.stream () .collect (   Collectors.groupingBy (   人::getSex,   收藏家。映射(人::getName Collectors.toSet ())   ));   }         }      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

JAVA8流收集GROUPBY分组实例解析