import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Stats { public static double calculateAverage(ArrayList numbers) { double total = 0; for (double num : numbers) { total += num; } return total / numbers.size(); } public static double calculateMedian(ArrayList numbers) { // sort the list Collections.sort(numbers); if (numbers.size() % 2 == 0) { // take average of two middle numbers int middle1 = numbers.size() / 2; int middle2 = middle1 - 1; return (numbers.get(middle1) + numbers.get(middle2)) / 2; } else { // take the one middle number int middle = numbers.size() / 2; return numbers.get(middle); } } public static void main(String args[]) { ArrayList numbers = new ArrayList<>(); Scanner in = new Scanner(System.in); System.out.println("Enter some numbers (0 to stop)."); double num = in.nextDouble(); while (num != 0) { numbers.add(num); num = in.nextDouble(); } double median = calculateMedian(numbers); System.out.println(median); } }