如何正确获取数字序列中最大和最小的数字?

use*_*682 0 java math

我应该从一系列数字中得到最小和最大的数字.我知道每种方法的方法体可能都不对.有帮助吗?

public class DataSet
{
  private int sum;
  private int count;
  private int largest;
  private int smallest;

  public DataSet()
   {
   sum = 0;
   count = 0;
   largest = 0;
   smallest = 0;
   }

 public void addValue(int x)
  {
   sum = sum + x;
   count++;
  }

 public int getSum()
 {
   return sum;
 }

 public double getAverage()
 {
   double average = sum/count;
   return average;
 }

 public int getLargest()
 {
   int largest = Integer.MAX_VALUE;//not giving right answer, don't know how to use
   return largest;
 }

  public int getSmallest()
 {
   int smallest = Integer.MIN_VALUE;//not giving right answer, don't know how to use
   return smallest;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果需要,这是测试人员类,虽然我不认为这里存在问题.

 public class DataSetTester
 {  
   public static void main(String[] args)
    {
    DataSet myData = new DataSet();
    myData.addValue(100);
    myData.addValue(5);
    myData.addValue(4);
    myData.addValue(2);

    System.out.println("Sum = " + myData.getSum());
    System.out.println("Average = " + myData.getAverage());
    System.out.println("Largest value = " + myData.getLargest());
    System.out.println("Smallest value = " + myData.getSmallest());
   }
   }
Run Code Online (Sandbox Code Playgroud)

Mad*_*mer 5

Integer.MAX_VALUEInteger.MIN_VALUE返回Integer值可表示的最大和最小数字

取而代之的是,在您添加方法,你需要比较值,因为它们的加入,您可以使用Math.min,并Math.max作出比较容易,比如...

private int smallest = Integer.MAX_VALUE;
private int largest = Integer.MIN_VALUE;

public void addValue(int x)
{
    smallest = Math.min(smallest, x);
    largest = Math.max(largest, x);
    sum = sum + x;
    count++;
}
Run Code Online (Sandbox Code Playgroud)