为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2021-06-29 16:22:33
我有以下问题:如何将截取的以下代码转换为 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编译器会推断出类型)


查看完整回答
反对 回复 2021-07-07
?
翻阅古今

TA贡献1780条经验 获得超5个赞

使用上述答案的 lambda 收集器的另一种方法

 List<String> tmpAdresses= users
                  .stream()
                  .collect(Collectors.mapping(User::getAddress, Collectors.toList()));


查看完整回答
反对 回复 2021-07-07
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

它扩展了你的想法:


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

.collect(Collectors.toList())


查看完整回答
反对 回复 2021-07-07
  • 3 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信