java8 如何實現(xiàn)分組計算數(shù)量和計算總數(shù)
更新時間:2021年07月06日 14:19:35 作者:FanClys
這篇文章主要介紹了java8 如何實現(xiàn)分組計算數(shù)量和計算總數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
java8分組計算數(shù)量和計算總數(shù)
package com.pig4cloud.pigx.admin.api.vo; import lombok.Builder; import lombok.Data; import lombok.experimental.Tolerate; import java.util.*; import java.util.stream.Collectors; /*** * *Create by 范春宇 on 2019/12/26 17:22 */ @Data public class RealSkuVo implements Cloneable{ private String realEan; private Integer realQty; public static void main(String[] args) throws CloneNotSupportedException { List<RealSkuVo> list = new ArrayList<>(); RealSkuVo a = new RealSkuVo(); RealSkuVo b1 = (RealSkuVo)a.clone(); b1.setRealEan("asdasda"); b1.setRealQty(1); RealSkuVo b2 = (RealSkuVo)a.clone(); b2.setRealEan("asdasda2"); b2.setRealQty(1); RealSkuVo b3 = (RealSkuVo)a.clone(); b3.setRealEan("asdasda3"); b3.setRealQty(1); RealSkuVo b4 = (RealSkuVo)a.clone(); b4.setRealEan("asdasda3"); b4.setRealQty(1); list.add(b1); list.add(b2); list.add(b3); list.add(b4); Map<String, LongSummaryStatistics> collect = list.stream().collect(Collectors.groupingBy(RealSkuVo::getRealEan,Collectors.summarizingLong(RealSkuVo::getRealQty))); Map<String, Long> collect1 = list.stream().collect(Collectors.groupingBy(RealSkuVo::getRealEan, Collectors.counting())); System.out.println(collect); } }
Java8利用Stream分組統(tǒng)計List(或數(shù)組)中元素的個數(shù),結(jié)果存放在Map
int[] arr=new int[]{5,1,3,4,1}; //若統(tǒng)計的是int數(shù)組,先轉(zhuǎn)化為List List<Integer> list= Arrays.stream(arr).boxed().collect(Collectors.toList()); //groupingBy分組 Map<Integer, Long> map = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); //控制臺輸出map map.forEach((k,v)->{ System.out.println("k="+k+",v="+v); });
k=1,v=2
k=3,v=1
k=4,v=1
k=5,v=1
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springmvc前臺向后臺傳值幾種方式總結(jié)(從簡單到復(fù)雜)
今天小編就為大家分享一篇springmvc前臺向后臺傳值幾種方式總結(jié)(從簡單到復(fù)雜),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08spring+mybatis 通過@ResponseBody返回結(jié)果中文亂碼的解決方法
下面小編就為大家分享一篇spring+mybatis 通過@ResponseBody返回結(jié)果中文亂碼的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12MyBatis學(xué)習(xí)教程(五)-實現(xiàn)關(guān)聯(lián)表查詢方法詳解
本文給大家介紹mybatis關(guān)聯(lián)查詢,包括一對一關(guān)聯(lián)查詢,一對多關(guān)聯(lián)查詢,代碼簡單易懂,感興趣的朋友一起學(xué)習(xí)吧2016-05-05springboot中@Async默認(rèn)線程池導(dǎo)致OOM問題
這篇文章主要介紹了springboot中@Async默認(rèn)線程池導(dǎo)致OOM問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06SpringMVC中的HttpServletRequestWrapper使用解析
這篇文章主要介紹了SpringMVC中的HttpServletRequestWrapper使用解析,HttpServletRequestWrapper 采用裝飾者模式對HttpServletRequest進行包裝,我們可以通過繼承HttpServletRequestWrapper類去重寫getParameterValues,getParameter等方法,需要的朋友可以參考下2024-01-01關(guān)于JVM垃圾回收的java.lang.ref.Finalizer問題
這篇文章主要介紹了關(guān)于JVM垃圾回收的java.lang.ref.Finalizer問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05