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栏,以空格为分隔输入。
第一个小程序:

第二个小程序:

结束语:
这个程序放弃了TreeMap,因为并没有想到怎么实现Comparator接口作为TreeMap的构造函数的参数,如果是compare(<Map<String,Integer> p1, Map<String, Integer> p2)那怎么实现拿出key和value呢。。ps:知道的偷偷告诉我。然后就是统计性能的问题,linux下真没想到怎么做,百度了下说jconsole这些,还要指定pid,运行时间这么短,反应不过来。应该还没打开程序就结束了吧。
github: https://github.com/blocksmz/task4
task4: 结对编程-词频统计[修改版]的更多相关文章
- task4:结对项目-词频统计
结对人:周楠 思路:利用TreeMap实现key字典序,然后输出到LinkedList,然后用Comparator,实现字典值从大到小排序,但是key实现值相同的key字典序的想出的实现方法,但是一直 ...
- 作业4-两人编程<词频统计>
协作:苗中峰,刘鑫成 我主要攻克排序,成哥写了文件流的使用.整合工作由我完成,成哥帮我查阅资料,避免和解决语法错误. 这次任务较作业三的变化是: * ...
- 结对项目— 词频统计2(语言C++)
结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...
- 结对项目— 词频统计(语言C++)
结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...
- 结对&词频统计
结对编程 Pathner 濮成林(博客:http://www.cnblogs.com/charliePU/) 1.词频统计 环境依赖: 开发环境.myeclipse 2013, jdk1.7.0_04 ...
- 软工结对项目之词频统计update
队友 胡展瑞 031602215 作业页面 GitHub 具体分工 111500206 赵畅:负责WordCount的升级,添加新的命令行参数支持(自定义输入输出文件,权重词频统计,词组统计等所有新功 ...
- Hive简单编程实践-词频统计
一.使用MapReduce的方式进行词频统计 (1)在HDFS用户目录下创建input文件夹 hdfs dfs -mkdir input 注意:林子雨老师的博客(http://dblab.xmu.ed ...
- Jason Wang: 结对编程 CountWord(第三次作业)
本次作业地址: https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2882 学号: 201731072323 ...
- 第四周作业&&结对编程
1. 结对编程. 本周开始,和我结对编程的小伙伴是齐嘉亮(博客:http://www.cnblogs.com/zhengrui0452/). 因为这周需要发布四人团队项目的alpha版本,刚好我和亮哥 ...
随机推荐
- Bootstrap-CL:面包屑导航
ylbtech-Bootstrap-CL:面包屑导航 1.返回顶部 1. Bootstrap 面包屑导航(Breadcrumbs) 面包屑导航(Breadcrumbs)是一种基于网站层次信息的显示方式 ...
- NP、NPC、NP-hard问题的定义
NP-hard问题 定义:NP-hard问题是这样的问题,只要其中某个问题可以在P时间内解决,那么所有的NP问题就都可以在P时间内解决了.NP-c问题就是NP-hard问题.但注意NP-hard ...
- Centos命令行窗口显示一大串前缀,777;notify;Command completed;的解决方法
How to remove the return code from the terminal prompt In addition to the PS1 environment variable, ...
- canvas填充规则
canvas填充规则 const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); ct ...
- hadoop自带TestDFSIO学习
hadoop系统中,包含了很多测试工具包,如测试mapreduce系统读写文件系统,有testDFSIO工具 首先安装好hadoop,配置好环境变量 进入share目录下的mapreduce目录下面, ...
- win7/64+python3.4+pyinstall3+tkinter+smtp=图形界面群发邮件客户端
#file: GUI_MAIL.py#Date: 2016/01/07#Author: lao_wan import tkinterimport smtplibfrom email.mime. ...
- Python实践练习:选择性拷贝
题目 项目要求:编写一个程序,遍历一个目录树,查找特定扩展名的文件(诸如.pdf 或.jpg),不论这些文件的位置在哪里, 将它们拷贝到一个新的文件夹中. 代码 import os import sh ...
- Yii中使用RBAC完全指南
开始准备 Yii提供了强大的配置机制和很多现成的类库.在Yii中使用RBAC是很简单的,完全不需要再写RBAC代码.所以准备工作就是,打开编辑器,跟我来.设置参数.建立数据库 在配置数组中,增加以下内 ...
- Variation Model的应用
Variation Model的主要原理是将待检测的图像与一张标准图像作比较,找出待检测图像与标准图像(ideal image)的明显差异(也就是不良). 标准图像可以采用几张OK品的图像训练(tra ...
- 迷你MVVM框架 avalonjs 1.2发布
avalon1.2 带来了许多新特性,让开发更轻松!详见如下: 升级路由系统与分页组件. 对ms-duplex的绑定值进行增强,以前只能prop或prop.prop2,现在可以prop["x ...