task4: 结对编程-词频统计[修改版]
2016-03-23 17:22
232 查看
问题描述:
读取一个文件,统计其中单词出现次数,并按从高到低的顺序显示,相同顺序的字典序排列。
思路:
基于上次的程序用正则提取出文本里的单词,然后利用字典计数(先get,为null则置1,不为null则加1),全部输入字典后通过entrySet()方法输出到列表,然后实现Comparator接口的类作为Collections.sort的参数实现排序的目的。遍历列表输出。
程序片段:
主要的就是下面的实现Comparator接口的类:
运行结果:
eclipse下指定命令行参数,在工作区右键,run as-> run configure,切到parameter栏,以空格为分隔输入。
第一个小程序:
![](http://images2015.cnblogs.com/blog/898101/201603/898101-20160323170956245-2078623852.png)
第二个小程序:
![](http://images2015.cnblogs.com/blog/898101/201603/898101-20160323171036589-859065189.png)
结束语:
这个程序放弃了TreeMap,因为并没有想到怎么实现Comparator接口作为TreeMap的构造函数的参数,如果是compare(<Map<String,Integer> p1, Map<String, Integer> p2)那怎么实现拿出key和value呢。。ps:知道的偷偷告诉我。然后就是统计性能的问题,linux下真没想到怎么做,百度了下说jconsole这些,还要指定pid,运行时间这么短,反应不过来。应该还没打开程序就结束了吧。
github: https://github.com/blocksmz/task4
读取一个文件,统计其中单词出现次数,并按从高到低的顺序显示,相同顺序的字典序排列。
思路:
基于上次的程序用正则提取出文本里的单词,然后利用字典计数(先get,为null则置1,不为null则加1),全部输入字典后通过entrySet()方法输出到列表,然后实现Comparator接口的类作为Collections.sort的参数实现排序的目的。遍历列表输出。
程序片段:
主要的就是下面的实现Comparator接口的类:
class sortman implements Comparator<Map.Entry<String, Integer>> { public int compare(Map.Entry<String, Integer> p1,Map.Entry<String,Integer> p2) { if(p1.getValue()<p2.getValue()) return 1; else if(p1.getValue()==p2.getValue()) if(p1.getKey().compareTo(p2.getKey())<0) return -1; else if(p1.getKey().compareTo(p2.getKey())==0) return 0; else return 1; else return -1; } }
运行结果:
eclipse下指定命令行参数,在工作区右键,run as-> run configure,切到parameter栏,以空格为分隔输入。
第一个小程序:
![](http://images2015.cnblogs.com/blog/898101/201603/898101-20160323170956245-2078623852.png)
第二个小程序:
![](http://images2015.cnblogs.com/blog/898101/201603/898101-20160323171036589-859065189.png)
结束语:
这个程序放弃了TreeMap,因为并没有想到怎么实现Comparator接口作为TreeMap的构造函数的参数,如果是compare(<Map<String,Integer> p1, Map<String, Integer> p2)那怎么实现拿出key和value呢。。ps:知道的偷偷告诉我。然后就是统计性能的问题,linux下真没想到怎么做,百度了下说jconsole这些,还要指定pid,运行时间这么短,反应不过来。应该还没打开程序就结束了吧。
github: https://github.com/blocksmz/task4
相关文章推荐
- The Smallest String Concatenation 一道让自己崩溃的题
- SpringMVC返回json数据的配置方式
- C++: 高精度加法与高精度减法
- Qt OpenGL:学习现代3D图形编程之一,画一个三角形
- python之psutil模块获取系统信息
- java 通用的返回类
- Spring中@Async用法总结
- QT之中多个信号连接同一个槽【细说版】
- C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为
- Thinkphp3.2.3 解决关联模型的自动生成问题($_auto)
- C# 共用的返回数据类
- Java过滤器与SpringMVC拦截器之间的关系与区别
- java垃圾回收机制和内存溢出
- python类、对象、方法、属性之类与对象笔记
- struts2应用
- Go学习笔记:golang交叉编译
- spring mvc 异步加载tree
- Java中jre 和 jdk 的区别
- 2016-AspNet-MVC教学-5-动态表格页面的基本测试-2
- windows同一台电脑设置多个公钥与不同github帐号交互