jerryqiu007 发表于 2013-1-27 04:56:06

对字符集中字符出现的次数进行排序

import java.util.ArrayList;   import java.util.Collections;   import java.util.HashMap;   import java.util.List;   import java.util.Map;   /**   *对字符集中字符出现的次数进行排序。*/public class Test2 {   public static void main(String args[]) {       String str = "12345678hfdjkslahfkj932189oiefsjkar94werfdsf";       Map<Character, KeyValue> map = new HashMap<Character, KeyValue>();       char c;       KeyValue kv = null;       for (int i = 0; i < str.length(); i++) {   c = str.charAt(i);   kv = map.get(c);   if (kv == null) {   kv = new KeyValue();   kv.ch = c;   kv.count = 1;   map.put(c, kv);   } else {   kv.count++;   }       }       List<KeyValue> list = new ArrayList<KeyValue>(map.values());       Collections.sort(list);       for (KeyValue o : list) {         System.out.println(o.ch + "=" + o.count);       }   }   }   class KeyValue implements Comparable {   char ch;int count;public int compareTo(Object obj) {       if (obj instanceof KeyValue) {       KeyValue kv = (KeyValue) obj;       return kv.count - this.count;       }       return -1;   }}  
页: [1]
查看完整版本: 对字符集中字符出现的次数进行排序