JAVA求数组的平均数,众数,中位数

后端 专栏收录该内容
75 篇文章 24 订阅

目录

1、名称解释

2、实例代码 

(1)求平均数

(2)求中位数

(3)求众数


1、名称解释

平均数:是指一组数据之和,除以这组数的个数,所得的结果就是平均数。

中位数:中位数是指把一组数据从小到大排列,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。

众数:众数是指一组数据中出现次数最多的那个数,众数可以是0个或多个。

2、实例代码 

(1)求平均数

public static double mean(int[] arr) {
		int sum = 0;
		for (int i = 0; i < arr.length; i++) {
			sum += arr[i];
		}
		return (double) sum / arr.length;
	}

(2)求中位数

public 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];
	}

(3)求众数

public static List<Integer> mode(int[] 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;
	}

  • 2
    点赞
  • 0
    评论
  • 40
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:我行我“速” 设计师:Amelia_0503 返回首页

打赏作者

Roc-xb

你的赞赏是对我的支持与认可。

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值