问题描述:对于数组{1,5,4,3,4,4,5,4,5,5,6,6,6,6,6},元素1出现的次数为1次,元素3出现的次数为1次,元素4出现的次数为4次,元素5出现的次数为4次,元素6出现的次数为5次,找出数组中重复出现次数最多的数。
思路:采用Map映射表。通过Map来记录每一个元素的出现次数,然后判断次数大小,进而找出重复次数最多的元素。
package com.haobi;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/*
* 如何找出数组中重复元素最多的数
*/
public class Test4 {
public static int findMostFrequentInArray(int[] a) {
//返回的结果
int result = 0;
//获取数组长度
int size = a.length;
if(size == 0) {
return Integer.MAX_VALUE;
}
//记录每个元素出现的次数
Map<Integer, Integer> m = new HashMap<Integer, Integer>();
for(int i=0;i<size;i++) {
if(m.containsKey(a[i])) {
m.put(a[i], m.get(a[i])+1);//已有,获取a[i]的value并加一
}else {
m.put(a[i], 1);//没有,则放入
}
}
//找出出现次数最多的元素
int most = 0;
Iterator iter = m.entrySet().iterator();