现在我正在使用一个forloop来过滤一个列表,像这样
LinkedList < classABC > filteredList = new LinkedList < > ();
for (ClassABC classABC: classABCList) {
if (classABC.getName() == "ABC" && classABC.before(timestamp1)) {
filteredList.add(classABC)
} else if (classABC.before(timestamp2)) {
filteredList.add(classABC)
}
}
return filteredList
我想知道是否可以使用stream()。filter()进行相同的操作。我尝试使用多个逻辑表达式进行过滤,但无法使其适用于复合逻辑表达式,例如(a && b) || (c)
看起来,流过滤器可以处理复合逻辑表达式。所以我像这样转换了if if。
filteredList = classABCList.stream()
.filter(abc ->(abc.getName() == "ABC" && abc.before(timestamp1))
|| abc.before(timestamp2)
).collect(toList());
这是RadioDef建议的ideone示例(感谢示例!)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句