Java 如何计算将谓词与 Streams 匹配的元素数量?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/33136772/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 14:22:48  来源:igfitidea点击:

How can I count the number of elements that match a predicate with Streams?

javajava-8

提问by ImTomRS

In Java7 I have this code:

在 Java7 我有这个代码:

public int getPlayersOnline() {
    int count = 0;
    for (Player player : players) {
        if (player.isActive()) {
            count++;
        }
    }
    return count;
}

I'm trying to use Java 8 features as much as possible, how can I go about improving this with lambdas?

我正在尝试尽可能多地使用 Java 8 功能,我该如何使用 lambda 来改进它?

采纳答案by Louis Wasserman

This would be a one-liner:

这将是一个单行:

return (int) players.stream().filter(Player::isActive).count();