import java.util.ArrayList;
import java.util.List;
class MA {
//005901078538
private ArrayList<Integer> mvgAvg = new ArrayList<Integer>();
public ArrayList<Integer> getMvgAvg()
{
return mvgAvg;
}
/**
Function Name:- movingAverage
Parameters:- Array of Integers and window size
Description:- creates sublist of integers and call winAvg function to calculate average.
**/
public void movingAverage(ArrayList<Integer> input, int winSize)
{
int j = input.size() - 2 * winSize;
int mvgwin = winSize;
for( int i =0 ; i< ((winSize+1) + j) ; i++) //((winSize+1) + j) is Boundary Condition
{
List<Integer> temp = new ArrayList<Integer>();
temp = input.subList(i,mvgwin);
mvgwin++;
calAvg(temp);
}
}
/**
Calculates average for List of Integers.
**/
private void calAvg(List<Integer> temp)
{
Integer average = 0,sum =0;
for(int i=0;i<temp.size();i++)
{
sum = sum + temp.get(i);
System.out.println("Sum " + sum + " "+ temp.get(i) );
}
average = sum/ temp.size();
mvgAvg.add(average);
System.out.println( "Average is \t " + average);
}
public static void main(String args[])
{
ArrayList<Integer> testing = new ArrayList<Integer>();
// read the integers here with ???
testing.add(23);testing.add(22);testing.add(78);testing.add(77);
testing.add(34);testing.add(65);testing.add(98);testing.add(45);
testing.add(14);testing.add(89);testing.add(33);testing.add(88);
testing.add(56);testing.add(90);testing.add(17);testing.add(11);
MA mvg = new MA();
mvg.movingAverage(testing, 10);
ArrayList<Integer> outputs = new ArrayList<Integer>();
outputs = mvg.getMvgAvg();
System.out.println(" My Average Array" + outputs);
}
}