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)
上一篇 2022年5月16日 下午11:20
下一篇 2022年5月16日 下午11:40


相关推荐

  • 前端面试——W3C标准及规范「建议收藏」

    前端面试——W3C标准及规范「建议收藏」作为前端工程师对W3C标准和规范不是很陌生。很多招聘要求中经常提到深入了解W3C标准及规范。那下面就总结一下W3C标准及规范:概念:W3C标准  中文名:万维网联盟,外文名:WorldWideWebConsortium      万维网联盟标准不是某一个标准,而是一些列标准的集合。网页主要有三部分组成:结构(Structure)、表现(Presentation)、行为(B…

    2025年12月12日
    5
  • 浮点数 原理_浮点数存储原理

    浮点数 原理_浮点数存储原理1.什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数(FixedPointNumber)。在这种表达方式中,小数点固定的位于实数所有数字中间的某

    2022年8月4日
    9
  • java笔记–Map的用法

    java笔记–Map的用法Map接口概述我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。 Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 Collectio…

    2022年7月26日
    22
  • @pytest.mark.parametrize_pytest参数化可变参数

    @pytest.mark.parametrize_pytest参数化可变参数前言当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。官方示

    2022年7月31日
    9
  • 史上最全 Java 多线程面试题及答案「建议收藏」

    史上最全 Java 多线程面试题及答案「建议收藏」这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。1、多线程有什么用? 一个可能在很多人…

    2022年8月27日
    7
  • python自行实现支付宝证书签名&验签全流程[通俗易懂]

    python自行实现支付宝证书签名&验签全流程[通俗易懂]支付宝Pythonsdk只有密钥签名,没有证书签名,下面是本人自行实现签名全流程证书签名需要新加alipay_root_cert_sn和app_cert_sn两个参数,这两个参数需要解析支付宝根证书(alipay_root_cert_sn)和应用公钥证书(appCerPublicKey_”app_id”.crt)得到:defsn_string():root_file_li=open(alipayRootCert.crt’,’r’).read().split(‘\n\n’)

    2022年5月11日
    50

发表回复

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

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