我有以下問題:如何將截取的以下代碼轉換為 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
提交
取消