栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【弄nèng - 化繁为简】Java8 List<Object>转Map<Integer,List< Object >>

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【弄nèng - 化繁为简】Java8 List<Object>转Map<Integer,List< Object >>

文章目录
    • 一. Collectors.toMap
    • 二. 事例
    • 三. List转Map

一. Collectors.toMap

看看源码

    public static 
    Collector> toMap(Function keyMapper,
                                    Function valueMapper,
                                    BinaryOperator mergeFunction) {
        return toMap(keyMapper, valueMapper, mergeFunction, HashMap::new);
    }

有三个参数,还有个默认参数
参数含义:

- keyMapper:Key 的映射函数
   
- valueMapper:Value 的映射函数
   
- mergeFunction:当 Key 冲突时,调用的处理方法
   
- mapSupplier:Map 构造器,在需要返回特定的 Map 时使用
二. 事例

输入

	public static void main(String[] args) {
        List testList = Lists.newArrayList(
                new TestEntity().setId(1).setName("张三"),
                new TestEntity().setId(1).setName("李四"), // Key 相同
                new TestEntity().setId(2).setName("王五")
        );

        Map map = testList.stream()
                .collect(Collectors.toMap(TestEntity::getId, TestEntity::getName, (n1, n2) -> n1 + n2));
        System.out.println("map:" + map);
    }

输出

三. List转Map>

输入

    public static void main(String[] args) {
        List testList = Lists.newArrayList(
                new TestEntity().setId(1).setName("张三"),
                new TestEntity().setId(1).setName("李四"), // Key 相同
                new TestEntity().setId(2).setName("王五")
        );

        Map map = testList.stream()
                .collect(Collectors.toMap(TestEntity::getId, TestEntity::getName, (n1, n2) -> n1 + n2));
        System.out.println("map:" + map);

        Map> mapList = testList.stream()
                .collect(Collectors.toMap(TestEntity::getId, item -> {
                    List list = Lists.newArrayList();
                    list.add(item);
                    return list;
                }, (n1, n2) -> {
                    n1.addAll(n2);
                    return n1;
                }));
        System.out.println("map:" + mapList);
    }

输出

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/606272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号