我有一份像这样的动物名单:
Animal :
int id;
boolean carnivore;
int leg;
在一个函数中,我想检索一下那些食肉动物中的动物数量(食肉动物是真的)。
而不是这样做:
Integer nb = 0;
for (Animal a : ListAnimal) {
if (a.isCarnivore()) {
nb++;
}
}
有更好的方法吗? 谢谢。
答案 0 :(得分:2)
使用int
代替nb
变量而不是Integer
。
Java 8中的替代版本是
long nb = ListAnimal.stream().filter(Animal::isCarnivore).count();
答案 1 :(得分:2)
在java 8中,使用isCarnivore()
方法作为Predicate
到filter()
列表中的流,然后调用count()
:
long nb = ListAnimal.stream().filter(Animal::isCarnivore).count();