zoukankan      html  css  js  c++  java
  • Java Map集合逻辑方法

    1. 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;
        }
    }
    
  • 相关阅读:
    mysql 设置自增主键id的起始值
    一文搞定MySQL的事务和隔离级别
    SpringBoot2.0整合Redis
    Redis Cluster搭建高可用Redis服务器集群
    为什么单线程的Redis这么快?
    Spring Boot使用AOP在控制台打印请求、响应信息
    Spring boot集成spring session实现session共享
    SpringBoot项目在IntelliJ IDEA中实现热部署
    Spring Boot入门-快速搭建web项目
    一篇文章搞定SpringMVC参数绑定
  • 原文地址:https://www.cnblogs.com/Twittery/p/15095131.html
Copyright © 2011-2022 走看看