查找存储在数组列表中的对象的平均值的最佳方法是什么?

你知道吗

我有一个方法可返回计数值大于对象中所有对象的平均值的对象的计数ArrayList

“用户”对象具有存储在其类(级别)中的整数值。

我的方法有效,但我想知道是否有更好的方法来查找所有对象值的平均值?

public int bestPlayers() {

    ArrayList<User> players = new ArrayList<User>();
    int bestPlayers = 0;
    int totalPlayerLevel = 0;
    double averageLevel = 0;

    for (int i = 0; i < players.size(); i++) {
        totalPlayerLevel += players.get(i).level;
    }

    averageLevel = totalPlayerLevel / players.size();

    for (int i = 0; i < players.size(); i++) {
        if (players.get(i).level > averageLevel) {
            bestPlayers++;
        }
    }

    return bestPlayers;
}
4城堡

Java 8使用IntStream#average()以下方法提供了一种更好的方法

double average = players.stream()
                        .mapToInt(p -> p.level)
                        .average()
                        .orElse(0);

然后输出“高于平均水平”的玩家数量:

return (int) players.stream()
                    .filter(p -> p.level > average)
                    .count();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章