有以下数据:
List<String> list=new ArrayList<String>();
   list.add("21");
   list.add("21");
   list.add("29");
   list.add("23");
   list.add("06");
   list.add("12");
   list.add("21");
   list.add("06");
   list.add("26");
   list.add("19");
集合中的数据已排序:
Collections.sort(list,new Comparator<String>(){
   public int compare(String o1, String o2) {
    String s1 = (String)o1;
    String s2 = (String)o2;
    return s1.compareToIgnoreCase(s2);
   }
});
声明容器:
Map<String,List<String>> m = new HashMap<String,List<String>>();
要做的是以list中的数据做为Map的key,Map的值是不论数字是否重复都加到List,期望的结果是这样:
{06=[06,06],12=[12],19=[19],21=[21,21,21],23=[23],26=[26],29=[29]}请高手帮助~

解决方案 »

  1.   

    public static void main(String[] args) {
            List<String> list = new ArrayList<String>();
            list.add("21");
            list.add("21");
            list.add("29");
            list.add("23");
            list.add("06");
            list.add("12");
            list.add("21");
            list.add("06");
            list.add("26");
            list.add("19");
            Collections.sort(list, new Comparator<String>() {            public int compare(String o1, String o2) {
                    String s1 = (String) o1;
                    String s2 = (String) o2;
                    return s1.compareToIgnoreCase(s2);
                }
            });
            Map<String,List<String>> m = new LinkedHashMap<String,List<String>>();
            for(String key : list){
                List<String> vals = m.get(key);
                if(vals == null){
                    vals = new ArrayList<String>();
                    m.put(key, vals);
                }
                vals.add(key);
            }
            System.out.println(m);
        }
      

  2.   

      Map<String,List<String>> m = new LinkedHashMap<String,List<String>>();
            for(String key : list){
                List<String> vals = m.get(key);
                if(vals == null){
                    vals = new ArrayList<String>();
                    m.put(key, vals);
                }
                vals.add(key);
            }偷1楼的代码~~
      

  3.   

    学习了 个人习惯先containsKey 不过1L这种写法看起来更好