java8的groupingBy实战

 groupingBy是归类的意思,我代码就是每个公司相同的进行分类,相同公司的数据进行处理

代码如下:

		List<SaleOrderItemInfoDTO> saleOrderItemInfoDTOS = this.saleOrderItemMapper.saleOrderItemInfos(param);

			if (CollectionUtils.isNotEmpty(saleOrderItemInfoDTOS)) {

				Map<Long, List<SaleOrderItemInfoDTO>> saleOrderItemInfoListGroup = saleOrderItemInfoDTOS.stream().collect(Collectors.groupingBy(SaleOrderItemInfoDTO::getEnterpriseId));

				if (saleOrderItemInfoListGroup.size() > 1) {
                    throw new ResultException("");
                }

                saleOrderItemInfoListGroup.forEach( (k,v)-> {
                    Long enterpriseId = k;
                    List<SaleOrderItemInfoDTO> saleOrderItemInfoDTOList = v;
// 然后进行逻辑处理
}

SaleOrderItemInfoDTO不包含以下字段:

public class SaleOrderItemInfoDTO{

    /**
     * 公司id
     */
	private Long enterpriseId;

	private Long a;

    private Long b;

    private String c;


}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java 8的groupingBy是一个用于对集合进行分组的方法。它是Stream API中的一个终端操作,可以基于给定的分类函数将元素分组成一个Map。 下面是groupingBy方法的基本语法: ``` public static <T, K> Collector<T, ?, Map<K, List<T>>> groupingBy(Function<? super T, ? extends K> classifier) ``` 其中,T表示集合中的元素的类型,K表示分组的键的类型。classifier是一个函数,用于根据元素生成分组的键。 下面是一个示例,演示如何使用groupingBy对一个字符串集合进行分组,按照字符串的长度进行分组: ```java List<String> strings = Arrays.asList("apple", "banana", "cat", "dog", "elephant", "fish"); Map<Integer, List<String>> result = strings.stream() .collect(Collectors.groupingBy(String::length)); System.out.println(result); ``` 运行结果为: ``` {3=[cat, dog], 4=[fish], 5=[apple], 6=[banana], 8=[elephant]} ``` 在这个例子中,我们使用String::length作为分类函数,将字符串按照长度分组成一个Map,其中键是字符串的长度,值是具有相同长度的字符串列表。 除了上述示例,groupingBy还可以与其他收集器一起使用,实现更复杂的分组操作。例如,我们可以使用groupingBy结合counting收集器来统计每个分组中元素的数量: ```java Map<Integer, Long> result = strings.stream() .collect(Collectors.groupingBy(String::length, Collectors.counting())); System.out.println(result); ``` 运行结果为: ``` {3=2, 4=1, 5=1, 6=1, 8=1} ``` 这个例子中,我们使用groupingBy和counting收集器结合,统计每个分组中元素的数量。 总结:Java 8的groupingBy方法是一个强大的工具,可以帮助我们对集合进行灵活的分组操作。它通过分类函数将元素分组成一个Map,可以与其他收集器一起使用,实现更复杂的分组统计等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

damoneric_guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值