对字符集中字符出现的次数进行排序
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]