如果我有一个像Java 8流;过滤器收集的条件
new MyObj("some"),
new MyObj("foo"),
new MyObj("bar"),
new MyObj("xyz");
一个包含对象List
,并希望与Java 8对其进行过滤匹配一些条件后流,说
myObj.prop = "foo";
怎么会是这样实现的?
上述例子的结果应该是
new MyObj("some"),
new MyObj("foo")
这将是“传统”的方式:
List<MyObj> results = new ArrayList<>();
for (MyObj myObj : myObjList) {
if (!myObj.prop.equals("foo")) {
results.add(myObj);
} else {
results.add(myObj);
break;
}
}
这不是exaclty的Limit a stream by a predicate重复,因为这不包括匹配的元素。但是,我应该能够适应takeWhile操作。
@AndyTurner他要返回的所有元素,直到满足该条件 – nbokmans
似乎类似于http://stackoverflow.com/ question/23308193/break-or-return-from-java-8-stream-foreach –