- Java Map集合逻辑方法
分组、List转Map
import com.alibaba.fastjson.JSON; import com.example.demo.pojo.StudentPlus; import lombok.Data; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; public class Test100 { public static void main(String[] args) { // 1.使用Lambda给List中相同的一个字段进行分组, 结果赋值Map集合中 // 案例:根据key判断优惠卷是否可用返回客户端 ----》可使用、map.get("!可使用").key; StudentPlus studentPlus01 = new StudentPlus(1, "张三", new Date()); StudentPlus studentPlus00 = new StudentPlus(1, "靳露", new Date()); StudentPlus studentPlus02 = new StudentPlus(2, "李四", new Date()); List<StudentPlus> arrayList = new ArrayList<>(); Collections.addAll(arrayList, studentPlus01, studentPlus00, studentPlus02); // 逻辑开始 Map<Integer, List<StudentPlus>> collect = arrayList.stream().collect(Collectors.groupingBy(StudentPlus::getId)); //根据Id进行分组 collect.forEach((key, value) -> System.out.println("key: " + key + "; value: " + JSON.toJSON(value))); /*TODO: key: 1; value: [{"date":1627614007999,"name":"张三","id":1},{"date":1627614007999,"name":"靳露","id":1}] key: 2; value: [{"date":1627614007999,"name":"李四","id":2}]*/ // 2.把StudentPlus实体类的值转换为Map集合, 然后通过map.key获取员工姓名 Map<Integer, String> map = arrayList.stream().collect(Collectors.toMap(StudentPlus::getId, StudentPlus::getName)); Arrays.stream("1,2".split(",")).forEach(item -> System.out.println("员工名称: " + map.get(Integer.valueOf(item)))); /*TODO: {1=靳露, 2=李四} 员工名称: 靳露 员工名称: 李四*/ } } @Data class Producer { private String name; private BigDecimal mony; public Producer(String name, BigDecimal mony) { this.name = name; this.mony = mony; } }
标签:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~