How do I count the occurrences of a number in an array?

``````package org.kodejava.example.lang;

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

public class NumberOccurrenceInArray {
public static void main(String[] args) {
int[] numbers = new int[]{1, 8, 3, 4, 3, 2, 5, 7, 3, 1, 4, 5, 6, 4, 3};

Map<Integer, Integer> map = new HashMap<>();
for (int key : numbers) {
if (map.containsKey(key)) {
int occurrence = map.get(key);
occurrence++;
map.put(key, occurrence);
} else {
map.put(key, 1);
}
}

for (Integer key : map.keySet()) {
int occurrence = map.get(key);
System.out.println(key + " occur " + occurrence + " time(s).");
}
}
}
``````

The result are:

``````1 occur 2 time(s).
2 occur 1 time(s).
3 occur 4 time(s).
4 occur 3 time(s).
5 occur 2 time(s).
6 occur 1 time(s).
7 occur 1 time(s).
8 occur 1 time(s).
``````

Latest posts by Wayan Saryada (see all)

How would you count for String values?

So I figured it out. The values in get key were `null` using a `foreach` loop I set it all to zero. I thought that since it was `Integer`, `0` would be default.
`Integer` is an object. All object references if not explicitly initialized are set to `null` in Java.