gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:10:36 27 4
gpt4 key购买 nike

我有一个方法返回值高于 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;
}

最佳答案

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();

关于java - 查找存储在数组列表中的对象的平均值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37235342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com