public class DataSet { private static final int DEFAULT_DATA_SET_SIZE = 100; public DataSet() { this(DEFAULT_DATA_SET_SIZE ); } public DataSet( int dataSetSize ) { data = new int[dataSetSize]; numData = 0; } // add a single integer to the data set. public void addValue( int x ) { if (numData < data.length) { data[numData] = x; ++numData; } } // add an array of integers to the data set // public void addValue( int[] x ) { // //// for( int item : x ) //// addValue( item ); // addValue( x, x.length ); // // } // add a partially filled array of N integers to the data set public void addValue( int[] x, int n) { for( int k = 0; k < n; ++k ) addValue( x[k] ); } public void addValue( int ... x ) { for( int k = 0; k < x.length; ++k ) addValue( x[k]); } public int getLargest() { int largest = Integer.MIN_VALUE; for( int k = 0; k < numData; ++k) if( largest < data[k] ) largest = data[k]; return largest; } public int getSmallest() { int smallest = Integer.MAX_VALUE; for( int k = 0; k < numData; ++k) if( smallest > data[k] ) smallest = data[k]; return smallest; } public int size() { return numData; } public double average() { double avg = 0; int sumData = 0; for( int k = 0 ; k < numData; ++k ) sumData += data[k]; if( numData > 0 ) { avg = (double) sumData / numData; } return avg; } public int[] getValues() { if( numData <= 0) return null; int [] copy = new int[numData]; for( int k = 0; k < numData; ++k ) copy[k] = data[k]; return copy; } private int []data; private int numData; }