首页 > 其他分享 >list转list(基于stream)

list转list(基于stream)

时间:2024-05-10 17:46:09浏览次数:24  
标签:基于 stream list List sourceObject collect import

list<dto>转list<String>效果图

 

代码部分

 List<SourceObject> sourceList = createSourceList();
        List<String> collect = sourceList.stream().map(sourceObject -> sourceObject.getName()).collect(Collectors.toList());
        collect.forEach(a->{
            System.out.println(a);
        });

  list<dto>转list<dto>效果图

 代码部分

List<TargetObject> targetObjects = sourceList.stream().map(sourceObject -> TargetObject.builder().id(sourceObject.getId()).name(sourceObject.getName()).build())
                .collect(Collectors.toList());
        targetObjects.forEach(a->{
            System.out.println(a);
        });

  完整代码

package springboot;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.junit.Test;

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

/**
 * @author yourheart
 * @Description
 * @create 2024-05-10 16:49
 */
public class ListToListTest {
    @Test
    public void test(){

        List<SourceObject> sourceList = createSourceList();
        List<String> collect = sourceList.stream().map(sourceObject -> sourceObject.getName()).collect(Collectors.toList());
        collect.forEach(a->{
            System.out.println(a);
        });


        List<TargetObject> targetObjects = sourceList.stream().map(sourceObject -> TargetObject.builder().id(sourceObject.getId()).name(sourceObject.getName()).build())
                .collect(Collectors.toList());
        targetObjects.forEach(a->{
            System.out.println(a);
        });

    }

    private  List<SourceObject> createSourceList() {
        // 创建一个简单的 SourceObject 列表
        List<SourceObject> list = new ArrayList<>();
        list.add(new SourceObject(1, "Apple"));
        list.add(new SourceObject(2, "Banana"));
        list.add(new SourceObject(3, "Orange"));
        return list;
    }
}

@Data
class SourceObject {
    private int id;
    private String name;

    public SourceObject(int id, String name) {
        this.id = id;
        this.name = name;
    }
    // 省略构造函数和 getter/setter 方法
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
class TargetObject {
    private int id;
    private String name;

    // 省略构造函数和 getter/setter 方法
}

  使用的依赖

<!--引入junit单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>
<!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.26</version>
        </dependency>

  

标签:基于,stream,list,List,sourceObject,collect,import
From: https://www.cnblogs.com/q202105271618/p/18184957

相关文章

  • ArrayList in C#
    https://dotnettutorials.net/lesson/arraylist-collection-csharp/c#中的数组列表是什么?c#中的ArrayList是一个非泛型集合类,它的工作方式类似于数组,但提供了动态调整大小、从集合中间添加和删除元素等功能。c#中的ArrayList可以用来添加未知数据,也就是说,当我们不知道数据的类型......
  • Dapr IoT Architecture是一个基于.NET平台的物联网系统架构
    DaprinIoT.UnderstandingofconceptbuildingdistributedapplicationinIoThttps://docs.dapr.io 在构建一个网联网系统(InternetofThings,IoT)或数字化系统的C#开源系统架构中,通常需要考虑以下关键方面:1.设备连接和数据采集:使用C#编写设备连接模块,支持多种通信协......
  • 慎用 Arrays.asList
    Java8提供的Stream流式处理大大减少了集合类各种操作(投影、过滤、转换)的代码量,用起来非常香,所以在实际业务开发中,我们常常会把原始的数组转换为List类数据结构,使得其可以用上Stream流操作。Arrays.asList方法应该是各位最常用的数组一键转换为List的方法了,但这个方法......
  • 使用spring.cloud.stream来发送kafka消息,并根据某字段将消息发送到固定partition上
    1、问题:在进行功能开发的时候遇到一个需求,具体需求如下:在某个服务A中接收到消息,对消息体进行校验,判断消息体中的数据是否需要产生告警,若产生告警,则将告警信息发送到kafka中,由另一个服务B接收到消息并记录到mongo中;当A服务在此接收到消息,发现以前的某个告警已经恢复,则再......
  • 一种基于光电容积波的血压测量神经网络算法,开源、低功耗、低成本的人工智能软硬件提
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI人工智能心血管疾病是最严重的死亡原因之一,每年在全世界造成严重的生命损失。持续监测血压似乎是最可行的选择,但这需要一个侵入性的过程,带来了几层复杂性。这促使我们开发一种方法,通过使用光体积描记图(PPG)信号的非......
  • 基于pinctrl和GPIO子系统的按键驱动程序
    嵌入式驱动开发中pinctrl和GPIO子系统使用频率非常高,其中pinctrl子系统主要用于复用和配置引脚,GPIO子系统用于设置GPIO的输入/输出,向引脚写入数据或者从引脚读取数据。一个引脚可以复用为多种不同的功能,因此要使用GPIO子系统首先要先把引脚配置为GPIO功能。下面将分为两部分记录如......
  • 204-基于Xilinx Virtex-6 XC6VLX240T 和TI DSP TMS320C6678的信号处理板
    基于XilinxVirtex-6XC6VLX240T和TIDSPTMS320C6678的信号处理板 1、板卡概述    板卡由北京太速科技自主研发,基于VPX架构,主体芯片为两片TIDSPTMS320C6678,两片Virtex-6XC6VLX240T-ff1156FPGA,1个RapidIOSwitch。FPGA连接FMC子卡。FPGA......
  • 【java】ArrayList和LinkedList的区别
    一、ArrayList和LinkedList的相同点ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用,他们都可以对元素的增删改查进行操作。ArrayList、LinkedList、Vector和Stack是List的四个实现类,List是一个接口,它继承与Collection接口,代表有序的队列。其中Vector......
  • 瑞亚时间管理大师,基于 .NET 6 和 Angular 构建的在线任务管理协作平台
    瑞亚时间管理大师瑞亚时间管理大师,是一个在线的任务管理、项目管理、团队协作平台。瑞亚拥有现代化的页面风格,高效、简便,同时适合个人和团队使用。瑞亚对个人免费,提供了无限制的任务,列表,和空间。功能预览瑞亚时间管理大师是以任务管理为核心,还包括了看板,文档,思维导图,白板......
  • 基于harris角点和RANSAC算法的图像拼接matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本MATLAB2022a 3.算法理论概述      Harris角点检测是一种局部特征检测方法,它寻找图像中具有显著局部曲率变化的位置,即边缘转折点或角点。主要通过计算图像窗口内的自相关矩阵M,并对其特征值进行评估。Harris响应函......