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

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

(0)

相关推荐

  • 详解Java8的groupBy实现集合的分组

    场景: Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map 1.对集合按照单个属性分组 e.g. 按照skuId分组 Map<String, List<EntryDeliveryDetailywk>> detailsMap01 = dtos1.stream() .collect(Collectors.groupingBy(EntryDeliveryDetailywk::getskuId)); 2对集合按照多个属性分组 solu

  • java8 stream自定义分组求和并排序的实现

    本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void main(String[] args) { List<GroupDetailDTO> list = new ArrayList<>(); GroupDetailDTO dto1 = new GroupDetailDTO(); dto1.setHeadsetId(1); dto1.setTime("2020-01-03"); dto1.s

  • Java8进行多个字段分组统计的实例代码

    Java8进行多个字段分组统计实现代码如下: // 分组统计 Map<String, Long> countMap = records.stream().collect(Collectors.groupingBy(o -> o.getProductType() + "_" + o.getCountry(), Collectors.counting())); List<Record> countRecords = countMap.keySet().stre

  • java8 集合 多字段 分组 统计个数代码

    1.user实体 package com.demo.dto; public class User { private Integer id; private String userName; private String password; private Integer age; private long c; public User() { super(); // TODO Auto-generated constructor stub } public User(Integer id, S

  • 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 publi

  • Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()

    Laravel 5.5 Linux mint 18 PHPStorm 最近刚玩Laravel,手册源码还没来得及看完就跃跃欲试做了个小项目,其中有个需求是分组查询数据库中的一个字段并返回每个分组中的数量,还是去翻手册(手册确实够简单): groupBy 和 having 方法可用来对查询结果进行分组.having 方法的用法和 where 方法类似: $users = DB::table('users') ->groupBy('account_id') ->having('account_id

  • java8 stream的分组功能实例介绍

    前言 最近,项目开发时遇到一个问题.根据业务要求,前端给后端上送的参数是一个列表(如List list),因此,后端也用了一个列表来接收.然而,等后端拿到数据后,我发现我需要对相同classId的数据进行统一处理.于是,我找到前端妹妹讨论,看她能不能帮忙把相同classId的数据封装成列表传给我.我好将接收参数修改成以下格式(List list): class Dto{ String classId; List<Student> list; } 这时,前端妹妹评估了下改动程度,眼泪汪汪地看着我

  • pytorch如何获得模型的计算量和参数量

    方法1 自带 pytorch自带方法,计算模型参数总量 total = sum([param.nelement() for param in model.parameters()]) print("Number of parameter: %.2fM" % (total/1e6)) 或者 total = sum(p.numel() for p in model.parameters()) print("Total params: %.2fM" % (total/1e

  • 详解C++编程中表达式的语义与计算顺序

    表达式根据其运算符的优先级和分组来计算. 计算顺序 请看以下示例: // expre_pluslang__pluslang_Order_of_Evaluation.cpp // compile with: /EHsc #include <iostream> using namespace std; int main() { int a = 2, b = 4, c = 9; cout << a + b * c << "\n"; cout <<

  • 利用Python画ROC曲线和AUC值计算

    前言 ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣.这篇文章将先简单的介绍ROC和AUC,而后用实例演示如何python作出ROC曲线图以及计算AUC. AUC介绍 AUC(Area Under Curve)是机器学习二分类模型中非常常用的评估指标,相比于F1-Score对项目的不平衡有更大的容忍性,目前常见的机器学习库中(比如scikit-learn)一般也都是集成该指标的计算,但

  • python:目标检测模型预测准确度计算方式(基于IoU)

    训练完目标检测模型之后,需要评价其性能,在不同的阈值下的准确度是多少,有没有漏检,在这里基于IoU(Intersection over Union)来计算. 希望能提供一些思路,如果觉得有用欢迎赞我表扬我~ IoU的值可以理解为系统预测出来的框与原来图片中标记的框的重合程度.系统预测出来的框是利用目标检测模型对测试数据集进行识别得到的. 计算方法即检测结果DetectionResult与GroundTruth的交集比上它们的并集,如下图: 蓝色的框是:GroundTruth 黄色的框是:Dete

  • pytorch 计算Parameter和FLOP的操作

    深度学习中,模型训练完后,查看模型的参数量和浮点计算量,在此记录下: 1 THOP 在pytorch中有现成的包thop用于计算参数数量和FLOP,首先安装thop: pip install thop 注意安装thop时可能出现如下错误: 解决方法: pip install --upgrade git+https://github.com/Lyken17/pytorch-OpCounter.git # 下载源码安装 使用方法如下: from torchvision.models import r

  • JS实现购物车中商品总价计算

    JS计算购物车中商品总价,供大家参考,具体内容如下 题目要求: 购物车中有若干商品信息,其中包括商品的名称.单价.数量,计算购物车中商品的总价. 具体思路: 商品信息通过创建商品对象来实现,若干商品的加和通过创建数组来放置若干商品,再通过遍历数组读取指定属性对价格进行计算. 具体代码: <script type="text/javascript"> // 总价变量 var sum = 0; // 商品对象 function Goods(name,price,amount){

随机推荐