小编Oct*_*cia的帖子

如何在带有lambda表达式的java 8中使用多个流和.map函数

我有一个List counties仅包含唯一县名的,List txcArray其中包含该城市的城市名称,县名和人口.

我需要txcArray使用带有lambda表达式和Streams的Java 8 来获取每个县的最大城市名称.

这是我到目前为止的代码:

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());
Run Code Online (Sandbox Code Playgroud)

我试图在之后添加另一个.map语句.max()来获取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());
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我做错了什么吗?

java collections lambda java-8 java-stream

5
推荐指数
1
解决办法
3174
查看次数

如何使用java 8 lambda表达式迭代两个流并保持计数

我有两个列表流,一个是字符串(县),另一个是对象(txcArray).我需要遍历两个列表并将一个县的实例与txcArray的实例进行比较,并且它们匹配递增一个计数器,如果它们没有,我会继续前进.我需要使用java 8 lambda表达式这样做,这是我到目前为止所做的.

counties.stream().forEach(a-> {
     txcArray.stream()
             .filter(b->b.getCounty().equals(a))
             .map(Map<String,Integer>)
});
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

3
推荐指数
1
解决办法
1535
查看次数

标签 统计

java ×2

java-8 ×2

lambda ×2

collections ×1

java-stream ×1