您的位置:首页 > 其它

HashMap简单使用

2017-03-25 21:44 176 查看


n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一个。

输入格式

第一行输入一个整数

下来一行输入

n 个 int 范围内的整数。

输出出现次数最多的数和出现的次数,中间用一个空格隔开,如果有多个重复出现的数,输出值最大的那个。

样例输入2

10

9 10 27 4 9 10 3 1 2 6

样例输出2

10 2

import java.util.HashMap;
import java.util.Scanner;

public class 蒜头君面试 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int n = input.nextInt();
HashMap<Integer, Integer> hashMap = new HashMap<Integer,Integer>();//键值肯定是唯一的
for (int i = 0; i < n; i++) {
int temp = input.nextInt();
if (hashMap.containsKey(temp)) {//hashMap检查键值是否已经存在
int value = hashMap.get(temp);//通过键值得到value值
value++;
hashMap.put(temp, value);//添加键值和value,重复对同一键值put value值会被改变
}else {
hashMap.put(temp, 1);
}
}

int maxkey = 0;
int maxvalue = Integer.MIN_VALUE;
//!!!重要
for(HashMap.Entry<Integer,Integer> entry:hashMap.entrySet()){//HashMap专用的遍历~~
int key = entry.getKey();//得到键值
int value =entry.getValue();//得到value
if (value>maxvalue) {
maxkey = key;
maxvalue = value;
}else if (value == maxvalue) {
if (maxkey<key) {
maxkey=key;
}
}else {
continue;
}
}
System.out.println(maxkey+" "+maxvalue);
}

}


HashMap遍历:

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class 遍历Map {

public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("a", 1);
hashMap.put("b", 2);
hashMap.put("c", 3);
hashMap.put("d", 3);
hashMap.put("e", 3);
//遍历key-value对**************************************************************/
/*遍历方法1,获得key在根据获得的key得到value*/
System.out.println("第一种遍历方式");
for(String s:hashMap.keySet()){
System.out.println(s+" "+hashMap.get(s));
} /*遍历方法2,*/

/*遍历方法2,Map里有个内部对象Entry,有个方法entrySet()可以返回这个Set集合,每个集合元素都是Map.Entry*/
System.out.println("第二种遍历方式");
for(Map.Entry<String, Integer> entry:hashMap.entrySet()){
System.out.println(entry);
}

//遍历key对**************************************************************/
System.out.println("遍历key方式");
Set set1 = hashMap.keySet();
for(Object object:set1){
System.out.println(object);
}

//遍历value对**************************************************************/
Collection values = hashMap.values();//返回value组成的collection集合;
System.out.println("遍历value方式");
for (Iterator iterator = values.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
System.out.println(object);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: