Java笔试题
要求
输入数组:1,2,3,4,4,4
输出:次数最高的数字的次数
分析
先将数组存入到HashMap中,
以数组中的数据为key,出现的次数为value
再找HashMap中value次数最高的那个数字,
就是我们要找的次数最高的数字与次数
代码实现
public static void getMaxCount(int[] array){
// map的key存放数组中存在的数字,
// value存放该数字在数组中出现的次数
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < array.length; i++) {
if (map.containsKey(array[i])) {
int temp = map.get(array[i]);
map.put(array[i], temp + 1);
} else {
map.put(array[i], 1);
}
}
Collection<Integer> count = map.values();
// 找出map的最大的count,也就是数组中数字出现最多的次数
int maxCount = Collections.max(count);
System.out.println("出现数字最高" + maxCount + "次");
}
如果要找到出现次数最高的数字
int maxNumber = 0;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
// 得到value为maxCount的key,也就是数组中出现次数最多的数字
if (maxCount == entry.getValue()) {
maxNumber = entry.getKey();
}
}