Java - HashMapすべての要素の合計、平均計算

HashMapのすべてのkeyまたはvalueの合計と平均を計算する方法を紹介します。

1. for文を利用した方法

以下のようにfor文を使用して、Mapのすべての値を巡回しながら合計を計算できます。平均は合計を HashMap の size で割るだけです。

import java.util.HashMap;
import java.util.Map;

public class Example {

    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("A", 13);
        map.put("B", 26);
        map.put("C", 30);

        int sum = 0;
        for (int value: map.values()) {
            sum += value;
        }
        System.out.println("sum: " + sum);

        double avg = sum / map.size();
        System.out.println("avg: " + avg);
    }
}

Output:

sum: 69
avg: 23.0

もしキーの合計を計算するのなら、以下のようにキーについて巡回しながら合計を計算すればよい。

for (int value: map.keys()) {
    sum += value;
}

2. Streamを利用した方法

Streamを使用して、HashMapのvalueの合計を計算できます。 ( mapToInt(), mapToDouble() などを利用)

平均は合計を Map の size で割るだけです。

import java.util.HashMap;
import java.util.Map;

public class Example {

    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("A", 13);
        map.put("B", 26);
        map.put("C", 30);

        int sum = map.values().stream().mapToInt(Integer::intValue).sum();
        System.out.println("sum: " + sum);

        double avg = sum / map.size();
        System.out.println("avg: " + avg);
    }
}

Output:

sum: 69
avg: 23.0
codechachaCopyright ©2019 codechacha