对Map中的Value进行排序,并且只取Map中的key作为返回

class Solution {
    public int[] topKFrequent(int[] nums, int k) {
        Map<Integer,Integer> map = new HashMap<>();
        int[] res = new int[k];
        for(int num:nums){
            map.put(num,map.getOrDefault(num,0)+1);
        }
        List<Integer> list = map.entrySet().stream().sorted((a,b) ->b.getValue() - a.getValue()).map(a->a.getKey()).collect(Collectors.toList());
         List<Integer> list1 = list.subList(0,k);
        for(int i =0;i<k;i++){
            res[i] = list1.get(i);
        }
        return res;
    }
}

力扣347

  

posted @ 2022-06-07 10:59  11111ghm  阅读(81)  评论(0)    收藏  举报