Is there a built-in method to calculate the average of an integer ArrayList?
If not, can I make a function that will do that by taking in the name of the ArrayList and r
If you want to computer later one more than the average I propose Colt library developed at CERN which supports many statistic functions. See BinFunctions1D and DoubleMatrix1D. An alternative (with a recent code basis) may be commons-math:
DescriptiveStatistics stats = new DescriptiveStatistics();
for( int i = 0; i < inputArray.length; i++)
{
stats.addValue(inputArray[i]);
}
double mean = stats.getMean();
It's really simple:
// Better use a `List`. It is more generic and it also receives an `ArrayList`.
public static double average(List<Integer> list) {
// 'average' is undefined if there are no elements in the list.
if (list == null || list.isEmpty())
return 0.0;
// Calculate the summation of the elements in the list
long sum = 0;
int n = list.size();
// Iterating manually is faster than using an enhanced for loop.
for (int i = 0; i < n; i++)
sum += list.get(i);
// We don't want to perform an integer division, so the cast is mandatory.
return ((double) sum) / n;
}
For even better performance, use int[]
instead of ArrayList<Integer>
.