|
|
<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;
- }
|
|