算法实现:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FindMaxCountNumber {
public static Map<Integer, Integer> find(int[] array) {
Map<Integer, Integer> map = new HashMap<>();
for(int i=0; i<array.length; i++) {
if(map.containsKey(array[i])) {
int count = map.get(array[i]);
map.put(array[i], count + 1);
} else {
map.put(array[i], 1);
}
}
return map;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6};
Map<Integer, Integer> map = find(array);
Collection<Integer> values = map.values();
int maxCount = Collections.max(values);
List<Integer> maxNumbers = new ArrayList<>();
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
if(entry.getValue() == maxCount) {
maxNumbers.add(entry.getKey());
}
}
System.out.print("出现次数最多的数字是:");
for(int i=0; i<maxNumbers.size(); i++) {
System.out.print(maxNumbers.get(i) + " ");
}
System.out.println();
System.out.println("这些数字都出现" + maxCount + "次");
}
}