在 java 中保持 运行 个值的平均值

Keeping a running average of values in java

我正在尝试计算通过重复函数调用给出的值的平均值。

实际上 Bluej 允许我对数字进行评分,但如果我想再次输入它会取代之前的数字,我想存储起来,然后显示平均值。

我不知道该怎么做

这是代码的一部分:

public int getRate() // here i put an int number
{
    return this.rate;
}

public void setRate(int rate) // here i change it but i think i don't need it
{
    this.rate = rate;
}

我不能使用奇怪或复杂的命令,因为我只能使用这种类型的命令,例如 get/set 和数组列表。

这是一项学校作业。

谢谢

保持平均输入的一种简单方法是跟踪:

  1. 目前收到的所有输入的总和。
  2. 您收到的输入数

每次调用 setRate 更新汇率时,您都会添加总和并增加计数。您还需要一个特殊情况,用于尚未添加费率的情况,以避免被零除:

private int ratesSum = 0;
private int rateCount = 0;

public int getRate()
{
    return this.rate;
}

public void setRate(int rate)
{
    this.rate = rate;
    this.ratesSum += rate;
    this.rateCount++;
}

// Gets the average of all rates so far, or returns zero if no rates
// have been set yet.
public float getAverageRate()
{
    // Do not divide by zero
    if (rateCount == 0) return 0;

    return ((float)ratesSum) / ((float)rateCount);
}