建立哈希映射後,你可以建立另一個關鍵將是地圖編號和價值可能是頻率。然後,所有那些要做的就是找到最大頻率。
HashMap<Integer,Integer> freq_map = new HashMap<Integer,Integer>();
int map_no=0,fr;
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
map_no = pairs.getValue());
if(map.contains(map_no)) fr = freq_map.get(map_no);
else fr = 0;
fr ++;
freq_map.put(map_no,fr);
}
// to find max
int max = -1,temp;
int result = -1;
Iterator it = freq_map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
temp = pairs.getValue());
if(temp>max){
max = temp;
result = pairs.getKey();
}
}
System.out.println("Highest frequency = "+result);
好了,忘記了一個事實,即它實際上是一個地圖 - 你有鍵/值對的集合,你想知道哪個鍵值最高。所以想想你該怎麼做,迭代序列並記住「迄今爲止見過的最好的...」 –
[查找與Java地圖中的最大值關聯的密鑰]的重複(http:// stackoverflow。 com/questions/5911174 /發現密鑰與最大值在一個java映射) –