• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

字符串数组中,Top K 字符串的问题

开发技术 开发技术 2周前 (04-30) 7次浏览

之前面试某大厂,最后的面试题就是这个;当时没有回答上来,心中一直更跟于怀;

看了别人的方法(https://www.cnblogs.com/lcy0515/p/10807853.html),赶紧好麻烦。想自己弄一个

 

import com.sun.xml.internal.bind.v2.TODO;

import java.util.*;

public class TopK {
    public static void main(String arg[]){
        String[] str=new String[]{"AAA","BBB","CCC","AAA","BBB","AAA"};
        //取出所有的字符串,去重,存入list
        List<String> list = new LinkedList<String>();
        for(int i = 0; i < str.length; i++) {
            if(!list.contains(str[i])) {
                list.add(str[i]);
                //System.out.println(list.get(i));
            }
        }
        int k = 0;
        //计算出字符串的出现的次数
        HashMap<String,Integer> hashMap = new HashMap<String, Integer>();
        for(int i = 0; i < list.size(); i++) {
            for(int j = 0;j< str.length;j++){
                if (list.get(i).equals(str[j])){
                    k++;
                }
            }
            hashMap.put(list.get(i),k);
            k = 0;
        }

        //System.out.println(hashMap);
       //对名称进行排序,首先要得到HashMap中键的集合(keySet),并转换为数组,这样才能用Arrays.sort()进行排序
        Set set=hashMap.keySet();
        Object[] arr=set.toArray();
        Arrays.sort(arr);
        for(Object key:arr){
            System.out.println(key);

        }
        System.out.println(arr[1-1]); //输出第一个
    }
}

  

 

  参考文档:https://blog.csdn.net/xHibiki/article/details/82938480?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control


程序员灯塔
转载请注明原文链接:字符串数组中,Top K 字符串的问题
喜欢 (0)