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);
}
}
}
相关文章推荐
- java集合框架(1) hashMap 简单使用以及深度分析
- 使用hashmap实现简单内存cache
- android-ListActivity与HashMap的简单使用
- hashmap使用的简单案例
- HashMap的使用,简单小代码
- java集合框架(1) hashMap 简单使用以及深度分析(转)
- java集合框架 hashMap 简单使用
- java hashMap 简单使用以及深度分析
- Hashmap的简单使用
- java中HashMap简单使用
- JAVA 集合Map的简单使用(HashMap)
- HashMap的简单使用
- hashmap简单实例(个人使用经验)
- Hashtable和HashMap的区别,Properties类的简单使用
- java集合框架(1) hashMap 简单使用以及深度分析
- hashmap简单实例(个人使用经验)
- HashMap的简单使用教程
- ArrayList、TreeSet、TreeMap、HashSet和HashMap的简单使用示例
- c#中类的简单使用学习
- 通过一个简单的SWING日历BEAN开发学习Calendar类的使用(2)JCalendar源代码