import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class OccurrenceOfNumInArray {
    public static void main(String args[]){
        //List<Integer> arr = Arrays.asList(12,12,12,4,4,4,4,3,3,3,2);
        int[] arr = {10, 10, 22, 22, 22, 43, 21};
        List<Integer> numsList=Arrays.asList(1,2,3,5,2,4,3,1,2,2,4,4,5);
        List<Integer> test = Arrays.asList(22,33,3,1,1,1,1,2,3,33,33);
        Map<Integer, Long> map=numsList.stream().collect(Collectors.groupingBy(Integer::intValue,Collectors.counting()));
        System.out.println(map);
        map.forEach((k,v)->{System.out.println(k+" = "+v);});
        Map<Integer,Long> occurrences =
                Arrays.stream(arr)
                        .boxed()
                        .collect(Collectors.groupingBy(s -> s, Collectors.counting()));
        System.out.println(occurrences);
    }
}