我有對象名單的字段標題。需要在列表中收集標題。我在下面的代碼中執行它。但是,也許有可能做得更優雅?謝謝。與集合最優雅的方式工作
ArrayList<String> organizationTitles = new ArrayList<String>();
for (Organization organization : result){
organizationTitles.add(organization.getTitle());
}
我有對象名單的字段標題。需要在列表中收集標題。我在下面的代碼中執行它。但是,也許有可能做得更優雅?謝謝。與集合最優雅的方式工作
ArrayList<String> organizationTitles = new ArrayList<String>();
for (Organization organization : result){
organizationTitles.add(organization.getTitle());
}
如果您使用的是JDK 8,那麼是的。有你的情況的lambda:
result.forEach((Organization organization) -> organizationTitles.add(organization.getTitle()));
這將做同樣的事情,但更緊湊。但是,如果您使用Java 7,則沒有更優雅的方式(據我所知)。
編輯:只是指出,你在Android上。我不認爲它已經支持Java 8,所以這可能不起作用。
我想這不是真的鼓勵。添加到內部循環內的集合不是函數式編程。我會建議使用Stream.map()來代替。 –
如果result
是Collection
那麼你可以這樣做:
result.stream().forEach(e -> {organizationTitles.add(e.getTitle);});
這並不是真的鼓勵我想。添加到內部循環內的集合不是函數式編程。我會建議使用Stream.map()來代替。 –
會記住。謝謝! –
如果您在Java8是,這是做一個完美的方式:
List<String> organizationTitles = result.stream()
.map(Organization::getTitle)
.collect(Collectors.toList())
然後,如果你在戀愛失敗與此,here是你想要進一步去的地方:
不在Android上。雖然我不清楚你對此的看法。 –
他不喜歡循環。 :P沒有人喜歡循環。循環規則! –
在python中,我可以在單行使用地圖中做到這一點,我只是希望在android中找到像它這樣的東西。 – Kota1921