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?
提问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();