如果我有一個像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 –