记录:根据value对Map进行排序

public class t1 {

    public static void main(String[] args) {
        String[] A = {"i am a coder", "Coder Coder", "Code"};  // 统计coder的个数并且 根据含有个数的字符串排序
        int n = A.length;

        // 找出来并且排序
        Map<Integer, Integer> map = new TreeMap<>();
        int count = 0;
        int res;
        int idx = 0;
        for (String s : A){
            res = 0;
            String[] s1 = s.split(" ");
            for (String s2 : s1){
                // 统计一个字符串里面有多少个coder
                if (s2.toLowerCase().equals("coder")) res++;
            }
            if (res == 0) idx++;
            map.put(count++, res);
//           map.put(res, count++);
        }
        Map<Integer, Integer> newMap = sortMap(map);

        String[] outputArr= new String[n - idx];
        count = 0;
        for (int i : newMap.keySet()){
            int val = newMap.get(i);
            if (val == 0) continue;;
            
            outputArr[count++] = A[i];
        }
    
        System.out.println(newMap);  // outputArr也是最终的结果


    }

    public static Map<Integer, Integer> sortMap(Map<Integer, Integer> map){
        Map<Integer, Integer> sortedMap = new LinkedHashMap<>();

        ArrayList<Map.Entry<Integer, Integer>> entryArrayList = new ArrayList<>(map.entrySet());

        Collections.sort(entryArrayList, new MyNewComparator2());
        Iterator<Map.Entry<Integer, Integer>> iter = entryArrayList.iterator();
        Map.Entry<Integer, Integer> tmpEntry = null;
        while (iter.hasNext()){
            tmpEntry = iter.next();
            sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
        }
        return sortedMap;
    }
}

class MyNewComparator2 implements Comparator<Map.Entry<Integer, Integer>> { @Override public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
        return o2.getValue() - o1.getValue();
    }
}



记录
#笔经#
全部评论

相关推荐

今天 10:45
已编辑
门头沟学院 Java
昨天面美团,jvm,juc问的好深啊,感觉小林coding不太够喔,牛油们有没有什么推荐的八股网站嘛🕒&nbsp;岗位/面试时间👥&nbsp;面试题目🤔&nbsp;面试感受11.20更新初试已过,一直泡池子啊
明天不下雨了:小林Coding:https://xiaolincoding.com/ 全栈哥:https://www.pdai.tech/ Guide哥:https://javaguide.cn/ 秀哥:https://interviewguide.cn/ 沉默王二:https://javabetter.cn/home.html 磊哥:https://www.javacn.site/interview/basic/ 小傅哥:https://bugstack.cn/ 源码哥:https://doocs.github.io/source-code-hunter/#/ 各大厂的公众号技术文章和一些经典的书籍
面试太紧张了怎么办?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务