Java List对象转为对象中某个属性的List 并且互转

Java List对象转List方法】——实现集合类型转换的高效方法 然后,我们通过在LinkedList的构造函数中传入"sourceList"来创建了一个新的LinkedList对象"targetList",实现了从ArrayList到LinkedList的转换。假设我们有一个名为"sourceList"的ArrayList对象,我们希望将其转换为LinkedList类型的集合。综上所述,通过使用Java提供的不同方法,我们可以高效地实现List对象到其他集合类型的转换。选择适合具体场景的方法,可以提高代码的可读性和执行效率,从而优化程序的性能。(本文总字数:361) 阅读详情

前言

经常会遇到将对象列表转换为对应的对象ID的列表,而且又讨厌写重复的代码。下面我们将用Jdk8的stream来实现这个功能

对象转对象的某个属性

最重要还是利用了stream的map函数

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Slf4j
public class Test {
    @org.junit.jupiter.api.Test
    void test(){
        List<TestUser> list = new ArrayList<>();
        list.add(TestUser.builder().name("杨过").id(1).build());
        list.add(TestUser.builder().name("小龙女").id(2).build());
        List<Integer> ids = list.stream()
	        .map(TestUser::getId)
	        .collect(Collectors.toList());
        log.info("ids:{}",ids);
    }

    @Getter
    @Setter
    @Builder
    public static class TestUser{
        private String name;
        private Integer id;
    }
}

关于stream()的map

本质上它是对数据流的一种映射关系定义,相当于它内部有自己的迭代器遍历,我们只需要在map中传入处理逻辑即可,map的输入是输入流的一个数据单元,输出可以是任意的。因此我们以后涉及到数据流映射的时候,都可以用它.

对象某个属性转对象

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Slf4j
public class Test {
    @org.junit.jupiter.api.Test
    void test(){
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        List<TestUser> userList = list.stream()
	        .map(k->TestUser.builder().id(k).build())
	        .collect(Collectors.toList());
    }

    @Getter
    @Setter
    @Builder
    public static class TestUser{
        private String name;
        private Integer id;
    }
}

关于stream()的flatmap

flatmap与map非常类似,不过我们从字面意思来理解,map表示映射,flat表示平,展开所以我们从命名可以这么理解,flatmap表示,将stream流中的所有子stream流合并。

示例代码

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

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

@Slf4j
public class Test {
    @org.junit.jupiter.api.Test
    void test(){
        Map<Integer,List<TestUser>> map = new HashMap<>();
        List<TestUser> list = new ArrayList<>();
        list.add(TestUser.builder().name("杨过").id(1).build());
        list.add(TestUser.builder().name("小龙女").id(2).build());
        map.put(1,list);
        map.put(2,list);
        List<TestUser> userList = map.values().stream()
                .flatMap(Collection::stream)
                .collect(Collectors.toList());
        //user size:4,每个stream被合并
        log.info("user size:{}",userList.size());
    }

    @Getter
    @Setter
    @Builder
    public static class TestUser{
        private String name;
        private Integer id;
    }
}
list根据对象中某个字段属性去重Java流实现 以上示例代码中,定义了一个MyClass类,该类具有id和name两个属性。请注意,如果你的对象类型(YourObject)的字段属性是可变的,并且你想要根据字段属性的最新值进行去重,那么你可能需要先对列表进行排序,然后再进行去重操作。在上述代码中,你需要替换 YourObject 为你实际的对象类型,并使用你想要根据的属性 getProperty 来比较对象的唯一性。在上面的代码中,YourObject是你自定义的对象类型,你需要根据该对象的某个字段属性来重写hashCode和equals方法。 阅读详情

相关推荐

TDSQL-单机安装

根据腾讯云官方要求,TDSQL安装至少需要三台机器。本人想要学习TDSQL但是没有足够的机器资源,经过仔细分析研究TDSQL安装过程,尝试发现单台机器也可以成功安装TDSQL,现将本人单台机器安装TDSQL的过程以及安装过程中遇到的问题在此分享。具体安装过程可参考腾讯官方文档,本文仅分享与官方文档不一致的步骤。

u012607648的博客 6805

Java:List转List (用stream实现)

//实体类 public class Student { private String no; //学号 private String name; //姓名 //构造方法忽略 //set、get 方法忽略 } public class Teacher{ private String no; //教师号 private String name; //姓名 } 一、List<Object> 转 List<String> //声

SeniorShen的博客 5万+

保姆级教程:用DaVinci Configurator & Developer从零搭建AUTOSAR OS(TC2xx三核实战)

本文提供了一份详细的AUTOSAR OS配置指南,使用DaVinci Configurator和Developer工具从零开始搭建Infineon TC2xx三核系统。涵盖多核配置协同逻辑、版本兼容性陷阱及验证错误的解决方案,帮助开发者在3小时内构建可运行的多核OS框架。

weixin_33940469的博客 313

一个List对象转换为另一个List对象,List中存放不同类型对象之间的转换

一个List对象转换为另一个List对象 两个 List 一个存放 BaseCustomerEntity 对象:List 一个存放 BaseCustomerNameListVo 对象:List 现在要把他们转换,简便的方式是: Lists.transform(List fromList, Function<? super F, ? extends T> function) 代编演示Li...

qq_43390895的博客 2万+

人大金仓数据库Kingbase FlySync同步程序安装

Kingbase FlySync同步程序(以下简称 KFS)是面向异地容灾、数据集中共享的场景推出的具备在异构数据平台间实现实时、增量数据同步的工具类产品,主要采用了物理日志解析技术,帮助用户解决不同数据平台的数据间可实现任意方向实时移动流转的问题,并保证此过程中数据不丢失,状态可监控,流转数据量可统计。KFS 需要安装的主要组件有 2 个,分别是后端同步程序和管理控制平台,另外KFS的部署方式也有2种,为分离部署何集中部署•集中部署:KFS与数据库部署在同一机器上。

weixin_44312518的博客 1176

深入学习FIFO

深入理解FIFO、同步FIFO和异步FIFO、FIFO设计的难点以及FIFO深度计算

好好学习,天天向上 2643

Java实现不同List对象之间的相互转换

Java实现不同List对象之间的相互转换

一恍过去 2万+

深入解析ISO12233标准:SFR算法从理论到代码实现

本文深入解析ISO12233标准中的SFR算法,从理论到代码实现全面介绍如何量化成像系统的解析力。通过e-SFR算法测量边缘扩散函数(ESF)和空间频率响应(SFR),结合光学原理和实际代码示例,帮助开发者准确评估影像质量。文章包含关键步骤的Python实现和工程优化技巧,适用于相机测试、镜头评估等应用场景。

weixin_29200485的博客 154

将 List 对象转为对象中指定属性的 List 集合

将 List 对象转为对象中指定属性的 List 集合

Jaemon 2万+

天线学习笔记——串馈网络设计

工程中通常更倾向于使用50Ω、70.7Ω、100Ω的固定阻抗的带宽,实际中可以分别使用固定阻抗的带宽和计算得到的带宽进行仿真,观察二者的性能,取性能更优者即可。本系列是一个记录天线设计的笔记,分享出来也希望能够帮助到大家,后续本系列文章还会不定期更新,如有需要可关注,任何问题均可在评论区或私信提出,看到必回。如果对大家有帮助可进行打赏哦~

Ethan的博客 7875

Halcon那些事:Halcon缺陷检测检测印刷数字完整性

创建模板 create_shape_model模板匹配 find_shape_model。

十多年IT经验,专注机器视觉,智能制造半导体行业 764

Java中找出List集合中属性名为key属性值为value的对象

前言:在日常开发中,我们需要从一个 List 集合中找出其中某一个对象,下面就介绍如何从 List 集合中找出属性名为 key 属性值为 value 的对象 1、方法 getObjectByKeyAndValue /** * 在一个实体list中,找出属性是key,值为value的实体 * * @param list * @param key * @param value * @param <T> * @return */ private static <T> T g

JACKAL 20万+

数据分析案例-电脑笔记本价格数据可视化分析3

本文基于Kaggle笔记本数据集(1303条记录,13个变量),使用Python进行数据可视化分析。通过自定义函数预处理了CPU频率、内存类型等关键特征,利用Seaborn和Matplotlib绘制了品牌分布、内存类型占比、价格影响因素等可视化图表。研究发现:1)Dell和Lenovo市场份额最大;2)SSD是主流存储类型;3)高RAM配置普遍采用SSD;4)Intel处理器占据绝对优势。分析揭示了不同品牌、配置与价格的关系,为消费者购买决策和市场策略制定提供了数据支持。

m0_64336780的博客 1万+

java Gson与对象,Map集合,List之间的相互转化,List转为对象

java Gson与对象,Map集合,List之间的相互转化前言建一个User类建一个GsonUtil工具类建一个Love测试类运行结果 前言 今天用的是gson工具类实现几个常用的gson转化和list转为对象这几个常用的。 建一个User类 public class User { String name; String id; public String getName() { re...

qq_43583597的博客 5308

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Java】使用lambda表达式获取list中所有对象的某个属性以及获取特定属性的某一个对象

使用lambda表达式获取list中所有对象的某个属性以及获取特定属性的某一个对象获取List中所有对象的某个属性获取List中某个特定属性的对象 获取List中所有对象的某个属性 案例如下:获取users中的所有userName public class UserEntity implements Serializable { private Integer id; private String userName; private String phone; } public stat

小哲的博客 3万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java两个list对象相同属性复制

通过使用Java的BeanUtils库,我们可以轻松地实现将一个对象列表的属性值复制到另一个对象列表中。这种方法简单而有效,可以帮助我们提高编码的效率。以上就是本文介绍的在Java中实现两个List对象属性复制的方法。希望本文能够对你有所帮助!

牛肉胡辣汤 2821

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java中List对象集合按照对象某一属性字段排序

Java中,List集合对象,默认有一个排序方法sort(Comparator<? super E> c),如果传递null,那是对简单类型的排序,如果是对象类型,并且是需要按照对象类型的某一个属性字段排序,就需要我们传入排序的规则。 show me the code: package com.xxx.huali.hualitest.sort; import java.util.ArrayList; import java.util.Collections; import ...

feinifi的博客 4万+

Java 对list对象进行属性校验

ps:对list对象进行属性校验。 @Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上 @Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上 user实体类: package com.lucifer.demo.pojo; import lombok.Data; import javax.validation.constraints.N...

路西法Lucifer 1万+

Java8 List对象中的属性以逗号分隔转字符串

List对象中的属性以逗号分隔转字符串 在Java 8中将集合List转变为用逗号分隔的String是非常简单的,下面看看是如何做到 我们使用String.join()函数,给函数传递一个分隔符合一个迭代器,一个StringJoiner对象会帮助我们完成所有的事情 List&amp;amp;lt;String&amp;amp;gt; list= Arrays.asList(&amp;quot;aaa&amp;quot;, &amp;quot;bbb&am

_binlong的博客 4万+

Java中List集合对象去重及按属性去重

请直接移步原文。

tellmewhoisi的博客 1920

java对象属性转成List

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnNJava对象属性转成List的实现 guide 在现代Java开发中,将一个对象的属性转化为List集合是一项常见的需求。尤其是在数据处理和管理中,对于对象的操作往往需要将属性集合化,方便...

weixin_36920405的博客 264

java 8 list的stream操作 list中的对象中的某一个成员取出转为该成员的list,以及对象过滤,筛选某个属性后的成员

取成员属性list List<String> configList = codeEntityList.stream().map(t -> t.getName()).distinct().collect(Collectors.toList()); 对象的过滤 list.stream().filter(body-> body.getId().equals(entity1.getId())).findAny().get(); //跟据某个属性分组 Map<S.

积累与备忘 7204

java8 list根据对象属性去重_使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map...

list去重,根据对象某个属性、某几个属性去重去除List中重复的StringList unique = list.stream().distinct().collect(Collectors.toList());去除List中重复的对象// Person 对象public class Person {private String id;private String name;private St...

weixin_39745013的博客 4912

java循环List设置每一个对象属性

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnN如何在Java中循环遍历List并设置对象属性 在Java开发中,我们经常需要处理对象集合,比如通过List来存储对象并对其进行操作。本文将指导你如何实现“Java循环List设置每一个对...

weixin_40399923的博客 486

利用流的方式将List中的对象属性转为List、Set、Map

实体 import java.io.Serializable; public class User implements Serializable { private Long id; private String userNo; private String userName; public User() { } public User(...

qq_42520753的博客 5871

JAVA8对List的相关操作 排序 去重 获取对象属性 修改对象属性值

// 1.排序,带参数类型 list.sort((String s1, String s2) -> s1.compareTo(s2)); list.sort(( LibraryDO lib1, LibraryDO lib2) -> lib2.getId().compareTo(lib2.getId())); // 使用默认方法排序 Collections.sort(list, Comp...

花满天下的博客 5442
上一篇: Java OpenCV关于Mat的常用操作 修改尺寸 旋转 翻转 文字
下一篇: Spring Security设置X-Frame-Options响应头
mt23
博客等级 码龄12年 33粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值