用java lambda 将一个ListUser 转成id 与name 的map
可以使用Java 8的Stream API和lambda表达式来实现将一个List
假设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()方法将Listcollect()方法将Stream对象收集为Map对象。toMap()方法的第一个参数是用于生成Map的key的lambda表达式,第二个参数是用于生成Map的value的lambda表达式。
在我们的例子中,User::getId和User::getName分别表示获取User对象的id和name属性。
最后,我们将生成的Map对象打印出来
原文地址: http://www.cveoy.top/t/topic/ilGQ 著作权归作者所有。请勿转载和采集!