可以使用哈希表(HashMap)来解决这个问题。遍历数组并使用哈希表来计数每个数字在数组中出现的次数。然后,遍历哈希表,将出现次数大于或等于n的数字添加到列表中并返回。
下面是实现该方法的Java代码示例:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4};
int n = 3;
List result = getNumbersWithNOrMoreOccurrences(arr, n);
System.out.println(result);
// Output: [3, 4]
}
public static List getNumbersWithNOrMoreOccurrences(int[] arr, int n) {
Map frequencyMap = new HashMap<>();
// count frequency of each number
for (int i = 0; i < arr.length; i++) {
if (frequencyMap.containsKey(arr[i])) {
frequencyMap.put(arr[i], frequencyMap.get(arr[i]) + 1);
} else {
frequencyMap.put(arr[i], 1);
}
}
// add numbers with frequency >= n to list
List result = new ArrayList<>();
for (Map.Entry entry : frequencyMap.entrySet()) {
if (entry.getValue() >= n) {
result.add(entry.getKey());
}
}
return result;
}
}