首页 > 基础资料 博客日记
Java stream 分组操作
2023-07-24 16:47:33基础资料围观673次
本篇文章分享Java stream 分组操作,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
根据单/多字段分组
单字段分组可以直接使用指定字段,多字段分组则采用拼接Key的形式
单字段:
//单字段分组
Map<String, List<User>> singleAttr = list.stream().collect(
Collectors.groupingBy(t -> t.getNativePlace()));
//还可以写成简化版
//Map<String, List<User>> collect = list.stream().collect(
// Collectors.groupingBy(User::getNativePlace));
多字段:
//多字段分组
Map<String, List<User>> multiAttr = list.stream().collect(
Collectors.groupingBy(t -> t.getNativePlace()+"_"+t.getAge()));
多层级:
//多级分组
Map<String, Map<Integer, List<User>>> multiLevel = list.stream().collect(
Collectors.groupingBy(
t -> t.getNativePlace(),
Collectors.groupingBy(t -> t.getAge())
)
);
测试
package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
ArrayList<User> list=new ArrayList<User>();
list.add(new User(11,"a"));
list.add(new User(12,"a"));
list.add(new User(14,"c"));
list.add(new User(14,"c"));
//单字段分组
Map<String, List<User>> singleAttr = list.stream().collect(Collectors.groupingBy(t -> t.getNativePlace()));
//还可以写成简化版
//Map<String, List<User>> collect = list.stream().collect(Collectors.groupingBy(User::getNativePlace));
//多字段分组
Map<String, List<User>> multiAttr = list.stream().collect(Collectors.groupingBy(t -> t.getNativePlace()+"_"+t.getAge()));
//多级分组
Map<String, Map<Integer, List<User>>> multiLevel = list.stream().collect(
Collectors.groupingBy(
t -> t.getNativePlace(),
Collectors.groupingBy(t -> t.getAge())
)
);
}
}
class User{
private int age;
private String nativePlace;
public String getNativePlace() {
return nativePlace;
}
public void setNativePlace(String nativePlace) {
this.nativePlace = nativePlace;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(int age,String nativePlace) {
this.age = age;
this.nativePlace=nativePlace;
}
}
文章来源:https://blog.csdn.net/zcy_wxy/article/details/130192370
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- AI 相关概念之(基础层级):AI、ANI、AGI、ASI
- 深度解读 AEC-Q100 Rev-J:为什么先进制程芯片的 ESD 电压降低?车规标准“放水”了?
- 硅基流动 vs OpenRouter——两种AI Infra模式的取舍
- Vector 选型与实战:vs OTel / Logstash / Fluentd 全维对比,及统一日志与指标管道的 AWS ECS 落地
- "MixFormer: Co-Scaling Up Dense and Sequence in Industrial Recommenders" 论文笔记
- 开源分享|用MicroPython 做了个 AI 小鸡,它会长大,还记得我所有的情绪
- HEIC图片转换器(HEIC转JPG/PNG/WEBP/BMP/TIFF/ICO)
- 5 分钟上手 AgentRun:从注册到第一个 Agent 运行
- transformer进阶之路:#4 attention从如何「工作」到「为何」如此高效
- 大模型推理的“两步走”:Prefill 与 Decode 全流程科普详解

