用Java实现WordCount

来源:互联网 发布:淘宝代销怎么下单 编辑:程序博客网 时间:2024/05/29 14:27

题目

有一个文件,里面每一行都是一个IP地址,要对所有IP进行统计,并按降序排列。(先不考虑内存不够的情况)

思路

这个题,在不考虑内存不够的情况下,其实是很简单的,主要涉及到的知识点有两个:    * Java IO    * Comparator先看代码然后来看知识点

代码

 public static void wordCountAndSort() throws IOException {        Map<String, Integer> map = new HashMap<String, Integer>();        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream((new File("", "utf-8")))));        //每行一个IP,则统计        String s = null;        while((s=reader.readLine()) != null){            if (!map.containsKey(s))                map.put(s, 1);            else                map.put(s, map.get(s)+1);        }        //排序。将Map转为list,然后进行sort        List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {                return o2.getValue().compareTo(o1.getValue());            }        });    }

Java IO

参考http://blog.csdn.net/yczz/article/details/38761237

Comparator比较器

参考http://blog.csdn.net/tolcf/article/details/52229068

原创粉丝点击