import java.util.ArrayList; import java.util.Scanner; import java.util.Collections; public class Stats { public static ArrayList getInput() { ArrayList numbers = new ArrayList<>(); Scanner in = new Scanner(System.in); boolean done = false; while (!done) { System.out.print("Enter a nunmber (-1 to stop): "); double next = in.nextDouble(); if (next != -1) { numbers.add(next); } else { done = true; } } return numbers; } public static double mean(ArrayList numbers) { double sum = 0.0; for (Double d : numbers) { sum += d; } return sum / numbers.size(); } public static double min(ArrayList numbers) { double smallest = numbers.get(0); for (Double d : numbers) { if (d < smallest) { smallest = d; } } return smallest; } public static double median(ArrayList numbers) { Collections.sort(numbers); System.out.println(numbers); // if the length is odd if (numbers.size() % 2 == 1) { int index = (numbers.size() - 1) / 2; return numbers.get(index); } // otherwise length is even else { double first = numbers.get(numbers.size() / 2 - 1); double second = numbers.get(numbers.size() / 2); return (first + second) / 2.0; } } public static void main(String args[]) { ArrayList numbers = getInput(); System.out.println(numbers); System.out.println("Average = " + mean(numbers)); System.out.println("Min = " + min(numbers)); System.out.println("Median = " + median(numbers)); } }