public String[][] topKStrings (String[] strings, int k){
        Map<String, Integer> map = new HashMap<>();
        for (String str :
                strings) {
            map.put(str, map.getOrDefault(str, 0) + 1);
            // 将字符串以及出现的次数利用map记录下来,
        }

        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        List<Map.Entry<String, Integer>> list = new ArrayList<>(entrySet);
        // 对map中的entry 进行排序。
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                if (o1.getValue().intValue() == o2.getValue().intValue()){
                    // 如果出现次数相同, 则根据字符的ascii码排序
                    return o1.getKey().compareTo(o2.getKey());
                }else {
                    // 如果出现次数不同, 则根据出现次数排序。
                    return o2.getValue().compareTo(o1.getValue());
                }
            }
        });

        String[][] ans = new String[k][2];
        // 取出前k个字符串
        for (int i = 0; i < k; i++) {
            ans[i][0] = list.get(i).getKey();
            ans[i][1] = list.get(i).getValue().toString();
        }
        return ans;

    }