2015-10-14 140 views
18

在Java7我有这样的代码:如何计算与Streams谓词匹配的元素数量?

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

我试图用Java 8层的功能尽可能,我怎么能去与lambda表达式改善呢?

+0

是''players'的Player'一个ArrayList? –

回答

38

这将是一个班轮:

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

很好的答案。你还可以分享任何优秀的教程(链接)来学习在java 8中使用lamda表达式吗? –

+2

@BalwinderSingh试试Google搜索。这是一个不错的工具。 – Andreas

+0

@Andreas这样做。但是这里的问题是没有很好的解释就有很多链接。无论如何,将看看我是否得到一些有用的东西分享或可能在稍后写一篇关于它的博客 –

相关问题