arraylist里面去找到出现频率最高的号码?list里面的号码不是唯一的吗?要用hashmap求频率最高的元素什么意思?
这没看明白!将list的value作为key,map的value是出现次数?还是怎么地

解决方案 »

  1.   

    Map<String,Integer> h = new HashMap<String,Integer>();
    for(number n:arraylist){
        if(map.get(n)==null){
           map.put(number,1);
        }else{
           map.put(number,map.get(number)+1);
        }
    }然后再比较map中值得大小
      

  2.   

    写了个大概。自己再修修改改吧。public static void main(String[] args) throws Exception, IOException {
    Map<String, Integer> map = new HashMap<String, Integer>();
    List<String> list = new ArrayList<String>();
    list.add("13700000000");
    list.add("13700000001");
    list.add("13700000001");
    list.add("13700000001");
    list.add("13700000001");
    list.add("13700000001");
    list.add("13700000000");
    list.add("13700000003");
    for (String item : list) {
    if (map.containsKey(item)) {
    map.put(item, map.get(item) + 1);
    } else {
    map.put(item, 1);
    }
    }
    List<Map.Entry<String, Integer>> listData = new ArrayList<Map.Entry<String, Integer>>(
    map.entrySet()); Collections.sort(listData,
    new Comparator<Map.Entry<String, Integer>>() {
    @Override
    public int compare(Entry<String, Integer> o1,
    Entry<String, Integer> o2) {
    if ((o2.getValue() - o1.getValue()) > 0) {
    return 1;
    } else if ((o2.getValue() - o1.getValue()) == 0) {
    return 0;
    } else {
    return -1;
    }
    }
    }); System.out.println(listData); }
      

  3.   

    HashMap的key就是手机号码  value就是个数
    HashMap<String, Integer>