请大家帮我看一下我的思路哪里不周全,谢谢。
错误:
我的思路:
把键盘输入的数据直接存在TreeMap(因为它按照key排序)中。定义一个maxv,只有当value>maxv的时候才输出对应的k,v,而相等和小于的情况不考虑。
代码如下:
import java.util.*;
public class Main{
public static void main(String[] args) {
int n = new Scanner(System.in).nextInt();
if (n<1 || n>1000){
return;
}
int[] arr = new int[n];
Scanner scan = new Scanner(System.in);
Map<Integer,Integer> map = new TreeMap<>();
for (int i=0;i<n;i++){
int num = scan.nextInt();
if(num<1||num>10000){
return;
}
if(map.containsKey(num)){
map.put(num,map.get(num)+1);
}else{
map.put(num,1);
}
}
Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();
int mink = 0;
int maxv = 0;
while (iterator.hasNext()){
Map.Entry<Integer, Integer> next = iterator.next();
int k = next.getKey();
int v = next.getValue();
if(v>maxv){
mink = k;
maxv = v;
}
}
System.out.println(mink);
}
}