欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA8 STREAM COLLECT GROUPBY分組實例解析

 更新時間:2020年01月02日 09:53:03   投稿:yaominghui  
這篇文章主要介紹了JAVA8 STREAM COLLECT GROUPBY分組實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了JAVA8 STREAM COLLECT GROUPBY分組實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

實體類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<People> 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,分別根據(jù)性別分組,統(tǒng)計各個性別人數(shù),以及各個性別映射姓名。

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> 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);
    }
  }

  /**
   * 根據(jù)性別分組
   */
  @Test
  public void groupBySex() {
    result = people.stream().collect(
        Collectors.groupingBy(People::getSex)
    );
  }

  /**
   * 分別統(tǒng)計不同性別各自的人數(shù)
   */
  @Test
  public void groupBySexCount() {
    result = people.stream().collect(
        Collectors.groupingBy(People::getSex, Collectors.counting()
        ));
  }

  /**
   * 分別統(tǒng)計不同性別各自的name列表
   */
  @Test
  public void groupBySexName() {
    result = people.stream().collect(
        Collectors.groupingBy(
            People::getSex,
            Collectors.mapping(People::getName, Collectors.toSet())
        ));
  }


}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java管理對象方法總結(jié)

    Java管理對象方法總結(jié)

    在本篇文章中小編給大家分享了關(guān)于Java管理對象方法以及相關(guān)代碼知識點,需要的朋友們跟著學(xué)習(xí)下。
    2019-05-05
  • Java實現(xiàn)創(chuàng)建Zip壓縮包并寫入文件

    Java實現(xiàn)創(chuàng)建Zip壓縮包并寫入文件

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)創(chuàng)建Zip壓縮包并寫入文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • mybatis判斷l(xiāng)ist不為空/大小的問題

    mybatis判斷l(xiāng)ist不為空/大小的問題

    這篇文章主要介紹了mybatis判斷l(xiāng)ist不為空/大小的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 解析SpringBoot項目開發(fā)之Gzip壓縮過程

    解析SpringBoot項目開發(fā)之Gzip壓縮過程

    這篇文章主要介紹了SpringBoot項目開發(fā)之Gzip壓縮過程,本文給大家分享幾種Gzip壓縮方式,通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • SWT(JFace)體驗之GridLayout布局

    SWT(JFace)體驗之GridLayout布局

    GridLayout 布局的功能非常強(qiáng)大,也是筆者常用的一種布局方式。GridLayout是網(wǎng)格式布局,它把父組件分成一個表格,默認(rèn)情況下每個子組件占據(jù)一個單元格的空間,每個子組件按添加到父組件的順序排列在表格中。
    2009-06-06
  • java實現(xiàn)簡單五子棋小游戲(1)

    java實現(xiàn)簡單五子棋小游戲(1)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)簡單五子棋小游戲的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • logstash將mysql數(shù)據(jù)同步到elasticsearch方法詳解

    logstash將mysql數(shù)據(jù)同步到elasticsearch方法詳解

    這篇文章主要為大家介紹了logstash將mysql數(shù)據(jù)同步到elasticsearch方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Mybatis中typeAliases標(biāo)簽和package標(biāo)簽使用

    Mybatis中typeAliases標(biāo)簽和package標(biāo)簽使用

    這篇文章主要介紹了Mybatis中typeAliases標(biāo)簽和package標(biāo)簽使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring數(shù)據(jù)訪問模板化方法

    Spring數(shù)據(jù)訪問模板化方法

    今天小編就為大家分享一篇關(guān)于Spring數(shù)據(jù)訪問模板化,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java使用字節(jié)流實現(xiàn)圖片音頻的復(fù)制

    Java使用字節(jié)流實現(xiàn)圖片音頻的復(fù)制

    今天帶大家學(xué)習(xí)Java的相關(guān)知識,文章圍繞著Java如何使用字節(jié)流實現(xiàn)圖片音頻的復(fù)制展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06

最新評論