ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java8将List对象转换Map

2020-12-01 15:34:02  阅读:992  来源: 互联网

标签:Map Users usersList 张三 List users4 users2 users3 Java8


基于Java8的函数式编程概念,去实现List<Object>转换Map<String,Object>

public class DemoMian2 {
    public static void main(String[] args) {
        List<Users> usersList = new ArrayList();
        Users users = new Users();
        users.setId(1L);
        users.setName("张三");
        users.setSex("男");
        users.setCity("深圳");
        usersList.add(users);

        Users users2 = new Users();
        users2.setId(2L);
        users2.setName("张三");
        users2.setSex("男");
        users2.setCity("上海");
        usersList.add(users2);

        Users users3 = new Users();
        users3.setId(3L);
        users3.setName("张三");
        users3.setSex("男");
        users3.setCity("深圳");
        usersList.add(users3);

        Users users4 = new Users();
        users4.setId(4L);
        users4.setName("张三");
        users4.setSex("男");
        users4.setCity("上海");
        usersList.add(users4);

        Map<Long, Users> collect = usersList.stream().collect(Collectors.toMap(Users::getId, Users -> Users));
        collect.forEach((key, value) -> System.out.println(key + "-" + value));

    }

}
/*
1-Users{id=1, name='张三', sex='男', city='深圳'}
2-Users{id=2, name='张三', sex='男', city='上海'}
3-Users{id=3, name='张三', sex='男', city='深圳'}
4-Users{id=4, name='张三', sex='男', city='上海'}
*/

注意:需要转换的key不能重复,如果出现重复的话,会报错已存在key

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 
Users{id=3, name='张三', sex='男', city='深圳'}

处理重复key可以使用如下模式:

package com.mars;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * TODO
 *
 * @Author: Yizq
 * @Date: 2020/10/27 1:49 下午
 */
public class DemoMian2 {
    public static void main(String[] args) {
        List<Users> usersList = new ArrayList();
        Users users = new Users();
        users.setId(1L);
        users.setName("张三");
        users.setSex("男");
        users.setCity("深圳");
        usersList.add(users);

        Users users2 = new Users();
        users2.setId(2L);
        users2.setName("张三");
        users2.setSex("男");
        users2.setCity("上海");
        usersList.add(users2);

        Users users3 = new Users();
        users3.setId(3L);
        users3.setName("张三");
        users3.setSex("男1");
        users3.setCity("深圳");
        usersList.add(users3);

        Users users4 = new Users();
        users4.setId(3L);
        users4.setName("张三");
        users4.setSex("男2");
        users4.setCity("上海");
        usersList.add(users4);

        Map<Long, Users> collect = usersList.stream().collect(Collectors.toMap(Users::getId, Function.identity(), (key1, key2) -> key2));

        collect.forEach((key, value) -> System.out.println(key + "-" + value));

    }

}
/*
1-Users{id=1, name='张三', sex='男', city='深圳'}
2-Users{id=2, name='张三', sex='男', city='上海'}
3-Users{id=3, name='张三', sex='男2', city='上海'}
*/

使用这种方式,在处理过程中会将存在的key进行覆盖

标签:Map,Users,usersList,张三,List,users4,users2,users3,Java8
来源: https://www.cnblogs.com/xianbeier/p/14068382.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有