標籤:return print 排序 取出 返回 ash ret 判斷 value
思路:把數組中的每個元素作為key存到map中 如果map沒有value 設為1
有則value+1
然後用類似於選擇排序的演算法取出value 最大的那個value 的key即可
import java.util.HashMap;import java.util.Iterator;import java.util.Map;/**利用map key唯一性 唯一來儲存數組的原數,而每遍曆map中判斷出已有key(即已有相同元素)存在,則key對應的value+1*若沒有,則把元素設為key,value設為1*/public class Test_plus { 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>(); //開始遍曆數組,往map中設定數組中每個元素(對應map中的key)對應出現的次數(對應map中的value) for(int i=0;i<size;i++) { if(m.containsKey(a[i])) { m.put(a[i], m.get(a[i])+1); } else { m.put(a[i], 1); } } int most=0; Iterator iter = m.entrySet().iterator(); //開始遍曆 比較map中每個key對應的value,取最大值,返回 while(iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); int key=(Integer)entry.getKey(); int val=(Integer)entry.getValue(); if(val>most) { result=key; most=val; } } return result; } public static void main(String[] args) { int[] array= {1,5,4,3,4,4,5,4,5,5,6,6,6,6,6}; int maxFrequenceNum=findMostFrequentInArray(array); System.out.println(maxFrequenceNum); }}
取出數組中重複最多的數