java8 如何实现分组计算数量和计算总数

 更新时间:2021年07月06日 14:19:35   作者:FanClys  
这篇文章主要介绍了java8 如何实现分组计算数量和计算总数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java8分组计算数量和计算总数

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分组统计List(或数组)中元素的个数,结果存放在Map

int[] arr=new int[]{5,1,3,4,1};
//若统计的是int数组,先转化为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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring前后端跨域请求设置代码实例

    Spring前后端跨域请求设置代码实例

    这篇文章主要介绍了Spring前后端跨域请求设置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • springmvc前台向后台传值几种方式总结(从简单到复杂)

    springmvc前台向后台传值几种方式总结(从简单到复杂)

    今天小编就为大家分享一篇springmvc前台向后台传值几种方式总结(从简单到复杂),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 基于java编写局域网多人聊天室

    基于java编写局域网多人聊天室

    这篇文章主要为大家详细介绍了基于java编写局域网多人聊天室的相关资料,使用socket基于java编写一个局域网聊天室,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法

    spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法

    下面小编就为大家分享一篇spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • MyBatis学习教程(五)-实现关联表查询方法详解

    MyBatis学习教程(五)-实现关联表查询方法详解

    本文给大家介绍mybatis关联查询,包括一对一关联查询,一对多关联查询,代码简单易懂,感兴趣的朋友一起学习吧
    2016-05-05
  • springboot中@Async默认线程池导致OOM问题

    springboot中@Async默认线程池导致OOM问题

    这篇文章主要介绍了springboot中@Async默认线程池导致OOM问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 千万别这样使用Arrays.asList详解

    千万别这样使用Arrays.asList详解

    这篇文章主要给大家介绍了关于为什么说千万别这样使用Arrays.asList()的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 不可不知道的10个java谎言

    不可不知道的10个java谎言

    这篇文章主要为大家详细介绍了不可不知道的10个java谎言,大家一定要谨慎,需要了解的朋友可以参考一下
    2016-09-09
  • SpringMVC中的HttpServletRequestWrapper使用解析

    SpringMVC中的HttpServletRequestWrapper使用解析

    这篇文章主要介绍了SpringMVC中的HttpServletRequestWrapper使用解析,HttpServletRequestWrapper 采用装饰者模式对HttpServletRequest进行包装,我们可以通过继承HttpServletRequestWrapper类去重写getParameterValues,getParameter等方法,需要的朋友可以参考下
    2024-01-01
  • 关于JVM垃圾回收的java.lang.ref.Finalizer问题

    关于JVM垃圾回收的java.lang.ref.Finalizer问题

    这篇文章主要介绍了关于JVM垃圾回收的java.lang.ref.Finalizer问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论