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

ImT*_*mRS 22 java java-8

在Java7中我有这个代码:

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

我正在尝试尽可能多地使用Java 8功能,如何使用lambdas改进这一功能?

Lou*_*man 51

这将是一个单行:

return (int) players.stream().filter(Player::isActive).count();
Run Code Online (Sandbox Code Playgroud)

  • @Balwinder Singh:如果你不知道从哪里开始,为什么不知道[官方文档](http://docs.oracle.com/javase/8/docs/technotes/guides/language/enhancements.html#javase8) ? (2认同)