求助Hashmap的问题
这个程序实现的是 查找出现次数最多的数:
import java.util.*;
public class data {
public static void main (String[] args) {
int max;
HashMap <String,Integer> hm = new HashMap <String,Integer>();
ArrayList <String> list = new ArrayList <String>();
for (int i=0;i <args.length;i++) {
String s = args;
if(hm.containsKey(s)) {
hm.put(s, hm.get(s) + 1); //hm.get(s)++;编译器说有问题,为什么呢?
} else {
hm.put(s,1);
list.add(s);
}
}
max=hm.get(list.get(0));
for(int i = 0 ; (i+1) <list.size() ; i++) {
if(hm.get(list.get(i)) <= hm.get(list.get(i+1))) {
max = hm.get(list.get(i+1));
}
}
for(int i = 0 ; i <list.size() ; i++ ) {
if(hm.get(list.get(i)) == max)
System.out.println(list.get(i) + " " + max + "次");
}
}
}
求高手帮我简化一下代码,总觉得我绕了很多弯路,我同学用C++写的也是用map(),代码比我的少了很多很多,我看他可以直接向数组一样使用map;另外他也直接用了map里的求最大值得方法,而我的这个程序还得自己写。还得用一个ArrayList来存储Key
。java里有没有对集合求MAX的方法呢?有没有对collection里的数据进行修改的方法呢?我看了一下API,不仅是map,连set,list里都没有对数据进行修改的方法,只有插入和删除,遍历。求高手帮帮忙,这是小弟第一次独立完成的一个程序,有什么好的算法,思路,方法都可以。。。