java求平均值(mean)、众数(mode)和中位数(median)需要编写三个methods

求平均值(mean)、众数(mode)和中位数(median)。
编写一个Java程序来接受n实数并报告这三个中间值。
您需要编写3个方法来完成任务,遵循以下方法签名(图片上有)
下面是这个题的例子,需要做成图片上的样子,麻烦大神帮忙!

img

思路:
1.输入数字n
2.创建数字,大小为n
3.遍历求和,除以n即平均数
4.n/2即中位数。

img

img

package com.csdn;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Test01 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入n:\t");
        int n = scanner.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            System.out.printf("请输入第%d个数:\t", i + 1);
            arr[i] = scanner.nextInt();
        }
        System.out.println("输入:" + Arrays.toString(arr));

        System.out.println("平均值是:" + mean(arr));
        System.out.println("众数是:" + mode(arr));
        System.out.println("中位数是:" + median(arr));
        scanner.close();

    }

    // 求平均值
    private static double mean(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return (double) sum / arr.length;
    }

    // 求众数
    private static List<Integer> mode(int[] arr) {
        // 先排序
        Arrays.sort(arr);
        Map<Integer, Integer> map = new HashMap<>();
        Set<Map.Entry<Integer, Integer>> set = map.entrySet();
        List<Integer> list = new ArrayList<>();
        // 结果
        List<Integer> res = new ArrayList<>();
        // 统计元素出现的次数,存入Map集合
        for (int item : arr) {
            map.put(item, map.getOrDefault(item, 0) + 1);
        }
        // 将出现的次数存入List集合
        map.forEach((k, v) -> {
            list.add(v);
        });
        // 得到最大值
        Collections.sort(list);
        int max = list.get(list.size() - 1);
        // 根据最大值获取众数
        for (Map.Entry<Integer, Integer> entry : set) {
            if (entry.getValue() == max) {
                res.add(entry.getKey());
            }
        }
        return res;

    }

    // 求中位数
    private static double median(int[] arr) {
        // 先排序
        Arrays.sort(arr);
        // 如果是偶数,则为中间两个数的和除以2
        if (arr.length % 2 == 0) {
            return (double) ((arr[arr.length / 2 - 1] + arr[arr.length / 2])) / 2;
        }
        // 否则就是中间这个数
        return arr[arr.length / 2];
    }

}