Statistics Calculator

Calculates minimum, maximum, mean, and standard deviation from user-inputted data.

Demonstrates key learning on Primitives .

import java.util.Scanner;
import java.lang.Math;

public class StatsCalculator {
    ArrayList<Double> data;
    public StatsCalculator() {
        this.data = new ArrayList<>();
        this.enterData();
    }

    private void enterData() {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter an numerical datapoint, type a non-numerical value to exit: \n");
        while(true) {
            try {
                double sampleInput = input.nextDouble();
                System.out.println(sampleInput);
                this.data.add(sampleInput);
            } catch (Exception e) {
                input.close();
                break;
            }
        }
    }

    public double findMax() {
        double max = this.data.get(0);
        for (double num : this.data) {
            if (num > max) {
                max = num;
            }
        }
        return max;
    } 

    public double findMin() {
        double min = this.data.get(0);
        for (double num : this.data) {
            if (num < min) {
                min = num;
            }
        }
        return min;
    } 

    public double findAverage() {
        double total = 0; 
        for (double num : this.data) {
            total += num;
        }
        return total/this.data.size();
    }

    public double findStandardDeviation() {
        double sum = 0; 
        for (double num : this.data) {
            sum += num;
        }
        double mean = sum/this.data.size();

        double standardDeviation = 0;
        for (double num : this.data) {
            standardDeviation += Math.pow(num - mean, 2);
        }
        return Math.sqrt(standardDeviation/(this.data.size() - 1));
    }

    public static void main(String[] args) {
        StatsCalculator newData = new StatsCalculator();
        System.out.println("\n----- summary -----");
        System.out.println("data: " + newData.data);
        System.out.println("maximum: " + newData.findMax());
        System.out.println("minimum: " + newData.findMin());
        System.out.println("mean: " + newData.findAverage());
        System.out.println("standard deviation: " + newData.findStandardDeviation());
    }
}

StatsCalculator.main(null);
Enter an numerical datapoint, type a non-numerical value to exit: 
1.0
4.0
7.0
8.0

----- summary -----
data: [1.0, 4.0, 7.0, 8.0]
maximum: 8.0
minimum: 1.0
mean: 5.0
standard deviation: 3.1622776601683795