Chinaunix首页 | 论坛 | 博客
  • 博客访问: 333506
  • 博文数量: 47
  • 博客积分: 2667
  • 博客等级: 少校
  • 技术积分: 480
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-10 11:25
文章分类

全部博文(47)

文章存档

2015年(2)

2012年(4)

2011年(4)

2010年(37)

我的朋友

分类: Java

2010-09-07 21:55:05


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;
/**
 * 此类描述的是:根据字符串个数的进行降序排列
 * @author wxylon@gmail.com
 * @version 创建时间:Sep 7, 2010 9:42:38 PM
 */


public class StringTest {
    //需统计的字符串

    private static String s = "asdwdasdasadsakjlvjcnuhiajdahduqwgadlsjdlakjdoqjdlndbcnhgdw";
    //存放排序结果

    private static List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character,Integer>>();
    //key 为字符, value 为个数

    private static Map<Character, Integer> treeMap = new TreeMap<Character, Integer>();
    
    /**
     * 此方法描述的是:字符分类统计,排序
     * @param x 需分类统计的字符串
     * void
     */

    public static void sortString(String x) {
        //分类统计

        if(x!=null && x.length()>0) {
            for(int i=0; i<x.length(); i++) {
                char xx = s.charAt(i);
                //未包含该该字符,初始化1

                if(treeMap.get(xx) == null) {
                    treeMap.put(xx, 1);
                //包含该该字符,值自增

                } else {
                    treeMap.put(xx, (treeMap.get(xx).intValue() + 1));
                }
            }
        }
        //转存list,目的使用jdk提供的方法

        list.addAll(treeMap.entrySet());
        
        //对list经行排序

        Collections.sort(list, new Comparator<Map.Entry<Character,Integer>>() {
            public int compare(Entry<Character, Integer> o1,
                    Entry<Character, Integer> o2) {
                //降序

                return o2.getValue()-o1.getValue();
                //升序

            //    return o2.getValue()-o1.getValue();

            }
        });
        //打印排序结果

        for(Map.Entry<Character,Integer> s: list){
            System.out.println(s+"--->"+s.getValue());
        }
        
    }
    
    public static void main(String[] args) {
        sortString(s);
    }
}


阅读(2281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~