最优雅的方式适用于集合

时间:2016-01-14 03:34:50

标签: java android

我有拥有字段标题的对象列表。需要在列表中收集标题。我在下面的代码中这样做。但是,也许它可能更优雅?感谢。

ArrayList<String> organizationTitles = new ArrayList<String>();
for (Organization organization : result){
    organizationTitles.add(organization.getTitle());
}

3 个答案:

答案 0 :(得分:3)

如果您使用Java8,这是完美的方法:

List<String> organizationTitles = result.stream()
                                        .map(Organization::getTitle)
                                        .collect(Collectors.toList())

然后,如果你爱上了那个,here就是你想要走得更远的地方:

答案 1 :(得分:1)

如果您使用的是JDK 8,那么是的。你的案子有lambdas:

result.forEach((Organization organization) -> organizationTitles.add(organization.getTitle()));

哪个会完全相同,但更紧凑。但是,如果您使用的是Java 7,那么就没有更优雅的方式(据我所知)。

编辑:刚才注意到你在Android上。我不认为它已经支持Java 8,所以这可能不起作用。

答案 2 :(得分:1)

如果resultCollection,那么你可以这样做:

result.stream().forEach( e -> {organizationTitles.add(e.getTitle);} );