java List中重复的字符串排序

首先,先将字符串重复次数放入map中,然后再对map根据值进行排序。

例:
//将List中每个元素的重复次数放入map中
  public static Map testSplit(List list){   
      int mapinI = 1;
      String firString= null;
      if(list.size()>=1){
          firString =list.get(0).toString();
          map.put(firString,mapinI);     
          list.remove(0);
      }
      int i= 0;
      for( ;i<list.size();i++) {
      String falgString = list.get(i).toString();
          if(falgString.equals(firString)){
              //    加了后去掉
              mapinI=mapinI+1;
              map.put(firString,mapinI);
              list.remove(i);
              i=-1;
          }               
      }
      if(list.size()>=1){
     
      //        递归
      testSplit(list);
      }
          return map ;       
  }

2,将Map进行排序
 
//对map进行排序(根据value)
 public static ArrayList<Map.Entry<String,Integer>> sorMap(Map map){
        ArrayList<Map.Entry<String,Integer>> entries = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());    
          Collections. sort(entries , new Comparator<Map.Entry<String, Integer>>() {    
              public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {    
                  return (o2.getValue() - o1.getValue());    
              }    
          }); 
          return entries;
  }


3,进行调用
  public static void main(String[] args) {
    List<String> list= new ArrayList<String>();
    list=getList(); //获取List  
    Map cache=testSplit(list);
    ArrayList<Map.Entry<String,Integer>> entries = sorMap(cache);
    for(Map.Entry<String,Integer> e : entries) {  
        System. out.println(e.getKey() + ":" + e.getValue());  
    } 
}


猜你喜欢

转载自lhkzyz.iteye.com/blog/1669233
今日推荐