对字符串中字符出现的次数进行排序
<div class="highlighter">[*]import java.util.ArrayList;
[*]<span />import java.util.Collections;
[*]<span />import java.util.HashMap;
[*]<span />import java.util.List;
[*]<span />import java.util.Map;
[*]<span />
[*]<span />/**
[*] * 对字符集中字符出现的次数继续排序。
[*] *
[*] * @author 赵学庆 www.java2000.net
[*] */<span />
[*]public class T {
[*] 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);
[*] }
[*] }
[*]}
[*]<span />
[*]<span />class KeyValue implements Comparable {
[*] public int compareTo(Object obj) {
[*] if (obj instanceof KeyValue) {
[*] KeyValue kv = (KeyValue) obj;
[*] return kv.count - this.count;
[*] }
[*] return -1;
[*] }
[*]<span />
[*] char ch;
[*]<span />
[*] int count;
[*]}
页:
[1]