我有以下问题:如何将截取的以下代码转换为 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());
3 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
您需要将collect流转换为列表:
List<String> adresses = users.stream()
.map(User::getAdress)
.collect(Collectors.toList());
有关不同Collectors访问文档的更多信息
User::getAdress只是另一种写法(User user) -> user.getAdress(),也可以写成user -> user.getAdress()(因为User编译器会推断出类型)
翻阅古今
TA贡献1780条经验 获得超5个赞
使用上述答案的 lambda 收集器的另一种方法
List<String> tmpAdresses= users .stream() .collect(Collectors.mapping(User::getAddress, Collectors.toList()));
喵喵时光机
TA贡献1846条经验 获得超7个赞
它扩展了你的想法:
List<String> tmpAdresses = users.stream().map(user ->user.getAdress())
.collect(Collectors.toList())
添加回答
举报
0/150
提交
取消