import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class FindMostFrequentArray {
/**
* 求数组中出现次数最多的元素
* 思路:利用map集合key值不可重复,若重复则就会覆盖之前的value。
* key对应数组中的数,value对应出现的次数
* 用containsKey判断key是否已存在,若不存在则加入map,若已存在则让value+1
* 剩下的工作,你懂的
* @param args
*/
public static int FindMostFrequentArray(int[] a){
int result=0;//出现最多的元素
int most=0;//出现的最多次数
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i=0;i<a.length;i++){
if(!map.containsKey(a[i])){
map.put(a[i], 1);
}else{
map.put(a[i], map.get(a[i])+1);
}
}
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Entry) it.next();
int key = (int) entry.getKey();
int value = (int) entry.getValue();
if(most<value){
most = value;
result = key;
}
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {1,1,4,4,4,7,7,-5};
System.out.println(FindMostFrequentArray(a));
}
}
求数组中重复元素最多的数
最新推荐文章于 2022-04-10 16:41:54 发布