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
Related Posts
- Java - BufferedReaderでファイルを読む
- Java - BufferedWriterでファイルを書き込む
- Java - BigIntegerの範囲、比較、演算、キャスト
- Java charAt()関数を学ぶ
- Java contains()で文字(大文字と小文字のX)を含める
- Java - Set(HashSet)を配列に変換する
- Java - 文字列の最初の文字、最後の文字を確認する
- Java - 文字列を1文字ずつ切り捨てる
- Java - 文字列の単語数を取得する
- Java - 1秒ごとに繰り返し実行
- Java - 配列をSet(HashSet)に変換する
- Java - 複数のSet(HashSet)を組み合わせる
- Java - コマンドライン引数の入力を受け取る
- Java - リスト逆順に巡回、3つの方法
- Java - 特定の条件でリストをフィルタリングする3つの方法
- Java - HashMapすべての要素の合計、平均計算
- Java - 特定の条件でHashMapをフィルタリングする
- Java - シングルトンパターンの実装
- Java - 数字の左側にゼロを埋める
- Java - String配列の初期化方法
- Java - ソートされた順序で Map(HashMap) 巡回