【发布时间】:2017-10-03 19:59:30
【问题描述】:
我正在尝试像这样过滤 java 集合:
filtered = products.stream()
.filter((product) ->size!=null&&
product.getSize().equalsIgnoreCase(size))
.filter((product) ->firmness!=null &&
product.getFirmness().equalsIgnoreCase(firmness))
.collect(Collectors.toList());
在这个例子中,我有两个变量要过滤 - 尺寸和硬度。此变量是可选的,可以为空。 因此,如果我发送两个非空参数,则代码可以正常工作并且过滤良好,但是当我只发送一个参数并将其他参数设置为空时 - 它不起作用。我需要我的集合被非空值过滤。因此,如果一个参数为空,另一个不是,则集合必须通过非空值过滤。我是怎么做到的?
【问题讨论】:
-
@JoeC 哦该死的,这是一个有用的链接!!
-
只用一个过滤器。