首页 > 解决方案 > 在流过滤器中使用 Java 过滤器

问题描述

我有ItemAddress课程:

public class Item {
    String name;
    List<Address> address;
}

public class Address {  
    String name;
    String lane;
}

假设我有一个项目列表,并且想要过滤通道为 的项目"lane1"

我在下面尝试,但在 Eclipse 中它显示:

“类型不匹配:无法从流地址转换为布尔值”

items.stream().filter(a->a.getAddress().stream().
      filter(b->b.getLane().equals("lane1"))).collect(Collectors.toList());

标签: javajava-8java-stream

解决方案


您可以anyMatch在内部流上使用:

items.stream().filter(a->a.getAddress().stream().
      anyMatch(b->"lane1".equals(b.getLane()))).collect(Collectors.toList());

推荐阅读