Java用数组储存若干整数,求出现超过3次的整数

问题遇到的现象和发生背景

Java程序问题
用数组存储输入的若干整数(可使用随机类或函数生成一定范围的随机整数),求出现次数超过3次的整数。
请问各位这个用java怎么写


        Integer[] integers = ThreadLocalRandom.current().ints(1, 10).boxed().limit(20).toArray(Integer[]::new);
        Map<Integer, Long> collect = Arrays.stream(integers).collect(Collectors.groupingBy(Integer::new, Collectors.counting()));
        List<Integer> nums = collect.entrySet().stream().filter(f -> f.getValue() > 3).map(Map.Entry::getKey).collect(Collectors.toList());
        // 随机数数组
        System.out.println(Arrays.toString(integers));
        // 每个随机数对应出现的次数
        System.out.println(collect);
        // 最终出现次数大于3的随机数
        System.out.println(nums);

暴力方式, 毫无技巧可言

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

public class Main {
    public static void main(String[] args) {
        int[] arr = {1,2,3,3,3,4,4,1223,1223,1223};
        List<Integer> data =  Arrays.stream(arr).boxed().collect(Collectors.toList());
        List<String> result  = data
                .stream()
                .collect(Collectors.groupingBy(Object::toString, Collectors.counting()))
                .entrySet()
                .stream()
                .filter(size -> size.getValue() >= 3)
                .map(Map.Entry::getKey).collect(Collectors.toList());
        System.out.println(result);
    }
}