gir*_*ake 1 java average arraylist
我有一个方法返回一个对象的计数,该对象的值高于一个对象中所有对象的平均值ArrayList.
'User'对象具有存储在其类(级别)中的整数值.
我的方法有效,但我想知道是否有更好的方法来查找所有对象值的平均值?
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;
}
Run Code Online (Sandbox Code Playgroud)
Java 8提供了一种更好的方法,使用IntStream#average():
double average = players.stream()
.mapToInt(p -> p.level)
.average()
.orElse(0);
Run Code Online (Sandbox Code Playgroud)
然后输出"高于平均水平"的玩家数量:
return (int) players.stream()
.filter(p -> p.level > average)
.count();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |