热点网站统计

标题:热点网站统计 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。请设计一个算法,可以高效动态统计Top N的页面。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String content = "";
        HashMap<String,Integer> map = new HashMap<>();
        StringBuffer sb = new StringBuffer();
       
        while(scanner.hasNext()){
            content = scanner.nextLine();
            try {
                int num = Integer.parseInt(content);
                List<String> list = new ArrayList<>();
                map.forEach((k,v)->{
                    list.add(v+" "+k);
                });
                list.sort((o1,o2)->{
                    int value1 = Integer.parseInt(o1.split(" ")[0]);
                    int value2 = Integer.parseInt(o2.split(" ")[0]);
                    if(value1 == value2){
                        String key1 = o1.split(" ")[1];
                        String key2 = o2.split(" ")[1];
                        return key1.compareTo(key2);
                    }else{
//                        System.out.println(value1 + " "+value2);
                        return value2 - value1;
                    }
                });
                for(int i=0;i<num;i++){
                    sb.append(list.get(i).split(" ")[1]).append(",");
                }
                sb.delete(sb.length()-1,sb.length()).append("\n");
            }catch (Exception e){
                if(map.containsKey(content)){
                    int value = map.get(content);
                    map.put(content,value+1);
                }else{
                    map.put(content,1);
                }
            }
        }
        System.out.println(sb);
    }
}



全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务