• StreamStream的List转Map


    转载:

    Stream的List转Map

    https://blog.csdn.net/weixin_43076660/article/details/122767929

    //测试user对象
    @lombok.Data
    class User {
        private String id;
        private String name;
    }
    //四个参数
    toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper,
            BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier);
            
    //参数含义分别是:
    
    keyMapper:Key 的映射函数
    
    valueMapper:Value 的映射函数
    
    mergeFunction:当 Key 冲突时,调用的合并方法
    
    mapSupplier:Map 构造器,在需要返回特定的 Map 时使用
    List<User> userList = Lists.newArrayList(
            new User().setId("B").setName("张三"),
            new User().setId("A").setName("李四"),
            new User().setId("C").setName("王五")
    );
    //类似这种,前两个参数是user对象中你想获取的两个值,如果值是user对象,那可以这样写
    userList.stream().collect(Collectors.toMap(User::getId, t -> t));
    
    //key值有冲突时,用第三个参数,第四个参数是排序
    userList.stream().collect(
        Collectors.toMap(User::getId, User::getName, (n1, n2) -> n1, TreeMap::new)
    );
     
  • 相关阅读:
    linux学习之线程篇(二)
    linux学习之线程篇(一)
    linux学习之进程篇(四)
    linux学习之信号篇(二)
    linux学习之信号篇(一)
    myshell案例
    linux学习之gdb调试工具篇
    linux学习之Makefile篇
    linux学习之进程篇(三)
    Linux常用命令-1
  • 原文地址:https://www.cnblogs.com/whoknows1/p/16360767.html
Copyright © 2020-2023  润新知