六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 45|回复: 0

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

[复制链接]

升级  30.67%

24

主题

24

主题

24

主题

秀才

Rank: 2

积分
96
 楼主| 发表于 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;   }}  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表