java8 list转换对象_Java8将List对象转换Map「建议收藏」

java8 list转换对象_Java8将List对象转换Map「建议收藏」基于Java8的函数式编程概念,去实现List转换MappublicclassDemoMian2{publicstaticvoidmain(String[]args){ListusersList=newArrayList();Usersusers=newUsers();users.setId(1L);users.setName(“张三”);users.setSex(…

大家好,又见面了,我是你们的朋友全栈君。

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

public class DemoMian2 {

public static void main(String[] args) {

List 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 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 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 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145620.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Content-Disposition的使用和注意事项

    Content-Disposition的使用和注意事项我们在开发web系统时有时会有以下需求:希望某类或者某已知MIME类型的文件(比如:*.gif;*.txt;*.htm)能够在访问时弹出“文件下载”对话框希望以原始文件名(上传时的文件名

    2022年7月1日
    18
  • ssm框架理解

    ssm框架理解SSM框架理解最近两星期一直在学JavaEE的MVC框架,因为之前学校开的JavaEE课程就一直学的吊儿郎当的,所以现在真正需要掌握就非常手忙脚乱,在此记录下这段时间学习的感悟,如有错误,希望大牛毫不

    2022年7月4日
    18
  • Android程序员如何制定自己的职业规划,拒绝做码农[通俗易懂]

    Android程序员如何制定自己的职业规划,拒绝做码农[通俗易懂]无论是程序员还是任何其他的职业,我认为都应该有清晰长远的职业规划。虽然说计划没有变化快,但如果没有计划就更谈不上计划了。没有职业规划的人,在工作上基本都是为了完成任务而做,很难得到提升,因为没有目标,所以人就是一种得过且过的状态。所以作为一个有眼光的人,应该有自己长远的职业规划,即使没有长远的职业规划,也应该有短期的规划,这样人做事才有动力,有目标。程序员一直都是一个热门话题,因为工资比较高,…

    2022年4月28日
    164
  • mysql设密码_MySQL登录

    mysql设密码_MySQL登录MySQL配置密码+忘记root密码的找回操作

    2022年8月11日
    3
  • 小程序推广赚佣金平台_亦笑天有声工作室微信公众号

    小程序推广赚佣金平台_亦笑天有声工作室微信公众号LNMP的配置与优化 一、LNMP的下载 LNMP一键安装包是一个用LinuxShell编写的可以为CentOS/RadHat/Fedora、Debian/Ubuntu/Raspbian/DeepinVPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境…

    2022年8月21日
    4
  • 【安装库】matlab2020b安装及百度网盘提速

    【安装库】matlab2020b安装及百度网盘提速【安装库】matlab2020b安装及百度网盘提速matlab2020b安装一,下载百度网盘链接:https://pan.baidu.com/s/18iLFaAbWt8IntUefX3eWfA提取码:p6in如果下载很慢的话应该是没开p2p加速(最近度盘良心发现加了个p2p下载)开启方法:打开设置开启提速模式开启后会提供一部分资源给别人下载,不下载的时候也会占用一定资源,当然这是相互的,你加速的时候别人也在和你共享资源,所以p2p才快,所以加速也只对热门资源比较有效

    2022年6月1日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号