Create a gist now

Instantly share code, notes, and snippets.

/**
* An 'n'-point averager.
*
* @author Sultan Jilani
*
*/
public class NPointAverager {
private int averagerSize;
private double[] averagerArray;
private int arrayPos = 0; //Next array position to put values to be averaged
/**
* Constructor for end point average class
* @param n the size of end point average
*/
public NPointAverager(int n) {
averagerSize = n;
averagerArray = new double[averagerSize];
}
/**
* returns (gets) Average of last n values sent, as name says.
* @return the Average
*/
public double getAverage(){
double holder = 0;
for(int i = 0; i<averagerSize; i++){
holder+=averagerArray[i];
}
return holder/averagerSize;
}
/**
* puts data in to array to be averaged, hence the class name and method
* name. Its like magic but cooler.
*
* @param value the value being inserted into the array to be averaged.
*/
public void putData(double value){
averagerArray[arrayPos] = value;
arrayPos++;
if (arrayPos>=averagerSize) { //Is equal or greater to
arrayPos=0; // averagorSize because array is
// zero indexed. Rolls over index
// position.
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment