我Foo
元素集合List<Foo>
:如何僅通過Java 8謂詞過濾特定元素?
class Foo {
private TypeEnum type;
private int amount;
//getters, setters ...
}
Foo
類型可以是TypeEnum.A
和TypeEnum.B
。
我想從列表中只得到那些Foo
元素,如果元素有type == TypeEnum.B
那麼amount
大於零(amount > 0
)。
如何通過Java 8 Stream filter()
方法來實現?
如果我使用:
List<Foo> l = list.stream()
.filter(i -> i.getType().equals(TypeEnum.B) && i.getAmount() > 0)
.collect(Collectors.<Foo>toList());
我得到Foo
元素與TypeEnum.B
但沒有TypeEnum.A
。
等待你想同時'TypeEnum.A '和'TypeEnum.B'還是隻有一個?你提到兩個變種。 – xander
@xander是的,我想得到兩個值,但其中一個過濾。 – kuba44