201312-1 出现次数最多的数Java
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = sc.nextInt();
}
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for(int i=0;i<n;i++) {
if(map.containsKey(array[i]))
map.put(array[i],map.get(array[i])+1);
else
map.put(array[i], 1);
}
int max = 0;
int value = 0;
Iterator<Map.Entry<Integer, Integer>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<Integer, Integer> entry = iter.next();
if (entry.getValue() > max ) {
value = entry.getKey();
max = entry.getValue();
}
}
sc.close();
System.out.println(value);
}
}
由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。
Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value
Map.Entry里面包含getKey()和getValue()方法
Set<Entry<T,V>> entrySet()
该方法返回值就是这个map中各个键值对映射关系的集合。
可使用它对map进行遍历。
Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator();
while(it.hasNext()) {
Map.Entry<Integer,Integer> entry=it.next();
int key=entry.getKey();
int value=entry.getValue();
System.out.println(key+" "+value);
}