可以使用Java 8的Stream API和lambda表达式来实现将一个List转换成id与name的Map。

假设User类有两个属性:id和name。

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

public class Main {
    public static void main(String[] args) {
        List<User> userList = List.of(
                new User(1, "John"),
                new User(2, "Alice"),
                new User(3, "Bob")
        );

        Map<Integer, String> idNameMap = userList.stream()
                .collect(Collectors.toMap(User::getId, User::getName));

        System.out.println(idNameMap);
    }
}

class User {
    private int id;
    private String name;

    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

输出结果:

{1=John, 2=Alice, 3=Bob}

在上面的代码中,我们使用stream()方法将List转换为Stream对象,然后使用collect()方法将Stream对象收集为Map对象。toMap()方法的第一个参数是用于生成Map的key的lambda表达式,第二个参数是用于生成Map的value的lambda表达式。

在我们的例子中,User::getIdUser::getName分别表示获取User对象的id和name属性。

最后,我们将生成的Map对象打印出来

用java lambda 将一个ListUser 转成id 与name 的map

原文地址: http://www.cveoy.top/t/topic/ilGQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录