在Java中,要计算集合中各组的平均值,你可以使用以下步骤:

  1. 创建一个Map,用于存储每个组的总和和计数。
  2. 遍历集合,将每个元素按照组别添加到Map中。
  3. 遍历Map,计算每个组的平均值。

以下是一个示例,演示如何计算一个List中各组的平均值:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        // 创建一个List,包含一些示例数据
        List<Data> dataList = new ArrayList<>();
        dataList.add(new Data("A", 10));
        dataList.add(new Data("A", 20));
        dataList.add(new Data("B", 30));
        dataList.add(new Data("B", 40));
        dataList.add(new Data("C", 50));

        // 计算各组的平均值
        Map<String, Double> averageMap = calculateGroupAverage(dataList);

        // 输出结果
        for (Map.Entry<String, Double> entry : averageMap.entrySet()) {
            System.out.println("Group: " + entry.getKey() + ", Average: " + entry.getValue());
        }
    }

    public static Map<String, Double> calculateGroupAverage(List<Data> dataList) {
        // 创建一个Map,用于存储每个组的总和和计数
        Map<String, double[]> groupSumAndCount = new HashMap<>();

        // 遍历集合,将每个元素按照组别添加到Map中
        for (Data data : dataList) {
            String group = data.getGroup();
            double value = data.getValue();

            if (!groupSumAndCount.containsKey(group)) {
                groupSumAndCount.put(group, new double[]{value, 1});
            } else {
                double[] sumAndCount = groupSumAndCount.get(group);
                sumAndCount[0] += value;
                sumAndCount[1]++;
            }
        }

        // 创建一个Map,用于存储每个组的平均值
        Map<String, Double> averageMap = new HashMap<>();

        // 遍历Map,计算每个组的平均值
        for (Map.Entry<String, double[]> entry : groupSumAndCount.entrySet()) {
            double[] sumAndCount = entry.getValue();
            double average = sumAndCount[0] / sumAndCount[1];
            averageMap.put(entry.getKey(), average);
        }

        return averageMap;
    }

    static class Data {
        private String group;
        private double value;

        public Data(String group, double value) {
            this.group = group;
            this.value = value;
        }

        public String getGroup() {
            return group;
        }

        public double getValue() {
            return value;
        }
    }
}

这个示例中,我们创建了一个名为Data的类,用于存储组别和值。我们首先创建了一个包含示例数据的List,然后使用calculateGroupAverage方法计算各组的平均值。最后,我们遍历结果Map并输出每个组的平均值。

java集合的组内平均值怎么计算_java