现在我正在使用一个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 else像这样。
filteredList = classABCList.stream()
.filter(abc ->(abc.getName() == "ABC" && abc.before(timestamp1))
|| abc.before(timestamp2)
).collect(toList());
这是RadioDef建议的ideone示例(感谢示例!)
Example
关于java - 流过滤器java中的if-else,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36524745/