当前位置: 移动技术网 > IT编程>开发语言>Java > 对map进行排序-按字符出现次数 排序

对map进行排序-按字符出现次数 排序

2020年08月17日  | 移动技术网IT编程  | 我要评论
package nowcode.test;import java.util.*;public class Testl { //按字符出现次数 排序 public static void main(String[] args) { System.out.println(frequencySort("taeeaaa")); } public static String frequencySort (String s) { // wri.
package nowcode.test;

import java.util.*;

public class Testl {

    //按字符出现次数 排序
    public static void main(String[] args) {
        System.out.println(frequencySort("taeeaaa"));
    }

    public static String frequencySort (String s) {
        // write code here
        Map<Character,Integer> mymap=new HashMap<>();
        for(int i=0;i<s.length();i++){
            mymap.put(s.charAt(i),mymap.getOrDefault(s.charAt(i),0)+1);
        }
        //转换为List
        List<Map.Entry<Character,Integer>> mylist=new ArrayList<>(mymap.entrySet());
        //给list排序
        Collections.sort(mylist,((o1, o2) -> (o2.getValue()-o1.getValue())));

        StringBuilder sb=new StringBuilder();
        //从list把map entry依次取出
        for(Map.Entry<Character,Integer> entry:mylist){
            for (int i = 0; i <entry.getValue() ; i++) {
                sb.append(entry.getKey());
            }
        }
        return sb.toString();
    }
} 

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网