2015-10-14 122 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這樣做。但是這裏的問題是沒有很好的解釋就有很多鏈接。無論如何,將看看我是否得到一些有用的東西分享或可能在稍後寫一篇關於它的博客 –

相關問題