我有一个List counties
,它只包含唯一的县名,而List txcArray
包含该城市的城市名称,县名和人口。如何在lambda表达式中使用java 8中的多个流和.map函数
我需要从txcArray
获得每个县的最大城市名称,只使用Java 8的lambda表达式和Stream
s。
这里是我的代码至今:
List<String> largest_city_name =
counties.stream()
.map(a -> txcArray.stream()
.filter(b -> b.getCounty().equals(a))
.mapToInt(c -> c.getPopulation())
.max())
.collect(Collectors.toList());
我想.max()
后添加另一个.MAP语句来获得City
人口最多的名字,但我的新lambda表达式不存在从txcArray流中只识别它为int
类型和texasCitiesClass类型。这是我想要做的。
List<String> largest_city_name =
counties.stream()
.map(a -> txcArray.stream()
.filter(b -> b.getCounty().equals(a))
.mapToInt(c->c.getPopulation())
.max()
.map(d->d.getName()))
.collect(Collectors.toList());
有人能告诉我我做错了什么吗?
不错。我没有想到这一点。简单得多。 +1 – Eran
我想,最初的意图是,大城市名称列表是同一顺序是县名单。在这里,保留'Map'可能会更好,而不是无序的城市名称集合...... – Holger