java取出list中的某几个属性组成一个新的集合的几种方式

我用了三种方式,1:forEach循环;2:for循环;3:stream方法

java 复制代码
package org.springblade.test;

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

public class Test {

    @org.junit.jupiter.api.Test
    public void aaa() {
        User user1 = new User("张三", 10, 1);
        User user2 = new User("李四 ", 11, 1);
        User user3 = new User("王五", 12, 0);
        List<User> users = new ArrayList<>();
        users.add(user1);
        users.add(user2);
        users.add(user3);
        //我这里都转为了List<Map<String, Object>>数组,也可以转换为一个新的实体类(自行创建)
        //使用forEach循环转化
        List<Map<String, Object>> infosFromForEach = new ArrayList<>();
        users.forEach(user -> {
            Map<String, Object> singleMap = new HashMap<>();
            singleMap.put("age", user.getAge());
            singleMap.put("gender", user.getGender());
            infosFromForEach.add(singleMap);
        });
        //使用for循环转化
        List<Map<String, Object>> infosFromFor = new ArrayList<>();
        for (User user : users) {
            Map<String, Object> singleMap = new HashMap<>();
            singleMap.put("age", user.getAge());
            singleMap.put("gender", user.getGender());
            infosFromFor.add(singleMap);
        }
        //使用stream流实现转换
        List<Map<String, Object>> collect = users.stream().map(user -> {
            Map<String, Object> singleMap = new HashMap<>();
            singleMap.put("age", user.getAge());
            singleMap.put("gender", user.getGender());
            return singleMap;
        }).collect(Collectors.toList());
    }


}

class User {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //性别:0:女;1:男
    private Integer gender;

    public User() {
    }

    public User(String name, Integer age, Integer gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public User setName(String name) {
        this.name = name;
        return this;
    }

    public Integer getAge() {
        return age;
    }

    public User setAge(Integer age) {
        this.age = age;
        return this;
    }

    public Integer getGender() {
        return gender;
    }

    public User setGender(Integer gender) {
        this.gender = gender;
        return this;
    }

}
相关推荐
程序员卷卷狗15 小时前
Java 单例模式的五种实现:饿汉式、懒汉式、DCL、静态内部类、枚举单例
java·开发语言·单例模式
@淡 定15 小时前
动态代理(JDK动态代理/CGLIB动态代理
java·开发语言·python
CreasyChan15 小时前
C# 异步编程详解
开发语言·windows·c#
悟能不能悟15 小时前
java 判断string[]中是否有a
java·开发语言
4***149015 小时前
高并发时代的“确定性”挑战——为何稳定性正在成为 JVM 的下一场核心竞争?
java·开发语言·jvm
野蛮人6号15 小时前
黑马微服务p10mybatisplus09核心功能iservice 测试文档无法正常打开
java·黑马微服务
危险、15 小时前
《Java Stream 中 toMap 的生产级用法:一次 Duplicate key 的异常问题复盘》
java
西柚小萌新15 小时前
【计算机常识】--Windows 安装 WSL2 并运行 Ubuntu 22.04
linux·windows·ubuntu
古城小栈15 小时前
Java 内存优化:JDK 22 ZGC 垃圾收集器调优
java·python·算法
福大大架构师每日一题15 小时前
rust 1.92.0 更新详解:语言特性增强、编译器优化与全新稳定API
java·javascript·rust