Java 8 lambda 从对象列表创建字符串列表

2022-09-01 06:27:48

我有以下疑问:

如何将以下截图的代码转换为Java 8 lambda样式?

List<String> tmpAdresses = new ArrayList<String>();
for (User user : users) {
    tmpAdresses.add(user.getAdress());
}

不知道,从以下几点开始:

List<String> tmpAdresses = users.stream().map((User user) -> user.getAdress());

答案 1

你需要收集你的一个:StreamList

List<String> adresses = users.stream()
    .map(User::getAdress)
    .collect(Collectors.toList());

有关不同内容的更多信息,请访问文档Collectors

User::getAdress只是另一种写作形式,也可以写成(因为类型将由编译器推断)(User user) -> user.getAdress()user -> user.getAdress()User


答案 2

它扩展了你的想法:

List<String> tmpAdresses = users.stream().map(user ->user.getAdress())
.collect(Collectors.toList())

推荐