javaでコレクション内にある同じデータの数をカウントする方法
HashMapを用いて、コレクション内部のデータの出現回数を頻度カウントできます。詳細手順は次のとおりです。
- 集合中の要素をキー、出現回数をバリューとする空のマップを作成するにはHashMapを使う。
- 集合内の各要素を走査し、その要素がすでにマップに存在するか判定します。すでに存在する場合、対応する値を1増分します。存在しない場合、その要素をキーとして値を1にしてマップに格納します。
- 走査が完了した後、マップのすべてのキーと値が、それぞれ集合の要素と出現回数を表わす。
以下にサンプルコードを示します。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CountDuplicates {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(1);
list.add(2);
Map<Integer, Integer> countMap = new HashMap<>();
for (Integer num : list) {
if (countMap.containsKey(num)) {
countMap.put(num, countMap.get(num) + 1);
} else {
countMap.put(num, 1);
}
}
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
System.out.println(entry.getKey() + "出现了" + entry.getValue() + "次");
}
}
}
実行結果:
1出现了2次
2出现了2次
3出现了1次