首页 > 编程语言 > 详细

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

时间:2021-04-30 21:13:15      阅读:28      评论:0      收藏:0      [点我收藏+]

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

看了别人的方法(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 字符串的问题

原文:https://www.cnblogs.com/perfect11a/p/14723051.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!