获取Java中具有特定匹配属性的List中的对象数

时间:2015-11-03 15:43:26

标签: java arrays list properties count

我有一份像这样的动物名单:

 Animal : 
     int id;
     boolean carnivore;
     int leg;

在一个函数中,我想检索一下那些食肉动物中的动物数量(食肉动物是真的)。​​

而不是这样做:

  Integer nb = 0;
    for (Animal a : ListAnimal) {
        if (a.isCarnivore()) {
            nb++;
        }
    }

有更好的方法吗? 谢谢。

2 个答案:

答案 0 :(得分:2)

使用int代替nb变量而不是Integer

Java 8中的替代版本是

long nb = ListAnimal.stream().filter(Animal::isCarnivore).count();

答案 1 :(得分:2)

在java 8中,使用isCarnivore()方法作为Predicatefilter()列表中的流,然后调用count()

long nb = ListAnimal.stream().filter(Animal::isCarnivore).count();