题解 | #字符统计#

字符统计

http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

//key:字符 value:个数
//对map的value值进行排序,降序
//方法1:将map放到流中,定义排序规则
//方法2:将map放到list中,定义排序规则
//将排序后的key值输出
//注意:如果统计的个数相同,则按照ASCII码由小到大排序输出。
//想法:先用TreeMap,按照ascll码排序,
//     这样最后对value排序时,相同value按照ascll排序


//set
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
        for (int i = 0; i < s.length(); i++) {
            tm.put(s.charAt(i), tm.getOrDefault(s.charAt(i), 0) + 1);
        }//for_i
        Map<Character, Integer> tm2 = new LinkedHashMap<Character, Integer>();
        //此处必须是LinkedHashMap,因为hashmap插入元素是无序的(.put函数),
        //希望排序后,按顺序插入哈希表
        tm.entrySet().stream().sorted( (o1, o2) -> o2.getValue().compareTo(o1.getValue()) ).forEach(user -> {
                    tm2.put(user.getKey(), user.getValue());
                });
        for(char key:tm2.keySet()){
            System.out.print(key);
        }

    }//main
}//Main


//方法2
// import java.util.*;

// public class Main {
//     public static void main(String[] args) {
//         Scanner in = new Scanner(System.in);
//         String s = in.nextLine();
//         TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
//         for (int i = 0; i < s.length(); i++) {
//             tm.put(s.charAt(i), tm.getOrDefault(s.charAt(i), 0) + 1);
//         }//for_i
//         ArrayList<Map.Entry> list = new ArrayList<>( tm.entrySet() );
//         Collections.sort(list, new Comparator<Map.Entry>() {
//             public int compare(Map.Entry o1, Map.Entry o2) {
//                 return (int) (o2.getValue()) -  (int)( o1.getValue() );
//             }//compare
//         }//Comparator
//                         );
//         for (Map.Entry e : list) {
//             System.out.print(e.getKey());
//         }
//     }//main
// }//Main
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务