问题描述:

  读取一个文件,统计其中单词出现次数,并按从高到低的顺序显示,相同顺序的字典序排列。

思路:

  基于上次的程序用正则提取出文本里的单词,然后利用字典计数(先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: 结对编程-词频统计[修改版]的更多相关文章

  1. task4:结对项目-词频统计

    结对人:周楠 思路:利用TreeMap实现key字典序,然后输出到LinkedList,然后用Comparator,实现字典值从大到小排序,但是key实现值相同的key字典序的想出的实现方法,但是一直 ...

  2. 作业4-两人编程<词频统计>

     协作:苗中峰,刘鑫成       我主要攻克排序,成哥写了文件流的使用.整合工作由我完成,成哥帮我查阅资料,避免和解决语法错误.              这次任务较作业三的变化是:       * ...

  3. 结对项目— 词频统计2(语言C++)

    结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...

  4. 结对项目— 词频统计(语言C++)

    结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...

  5. 结对&词频统计

    结对编程 Pathner 濮成林(博客:http://www.cnblogs.com/charliePU/) 1.词频统计 环境依赖: 开发环境.myeclipse 2013, jdk1.7.0_04 ...

  6. 软工结对项目之词频统计update

    队友 胡展瑞 031602215 作业页面 GitHub 具体分工 111500206 赵畅:负责WordCount的升级,添加新的命令行参数支持(自定义输入输出文件,权重词频统计,词组统计等所有新功 ...

  7. Hive简单编程实践-词频统计

    一.使用MapReduce的方式进行词频统计 (1)在HDFS用户目录下创建input文件夹 hdfs dfs -mkdir input 注意:林子雨老师的博客(http://dblab.xmu.ed ...

  8. Jason Wang: 结对编程 CountWord(第三次作业)

    本次作业地址: https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2882 学号: 201731072323 ...

  9. 第四周作业&&结对编程

    1. 结对编程. 本周开始,和我结对编程的小伙伴是齐嘉亮(博客:http://www.cnblogs.com/zhengrui0452/). 因为这周需要发布四人团队项目的alpha版本,刚好我和亮哥 ...

随机推荐

  1. EF调用存储过程查询表中的部分字段,报数据读取器与指定的“AdventureWorksDWModel.Student”不兼容。某个类型为“Age”的成员在同名的数据读取器中没有对应的列。

    实现功能:查询单张表Student中返回指定的列 一:数据库表结构: 二:存储过程: USE [AdventureWorksDW] GO /****** Object: StoredProcedure ...

  2. bs的过滤器功能例子

    第一步 #src链接要符合下面要求,这里返回是 false or true def valid_img(src): return src.endswith('jpg') and 'img.jandan ...

  3. Java 获取字符串指定下标位置的值 charAt()

    Java手册 charAt public char charAt(int index) 返回指定索引处的 char 值.索引范围为从 0 到 length() - 1.序列的第一个 char 值位于索 ...

  4. 在 Laravel 5 中集成七牛云存储实现云存储功能(非上传)

    本扩展包基于https://github.com/qiniu/php-sdk开发,是七牛云储存 Laravel 5 Storage版,通过本扩展包可以在Laravel 5中集成七牛云存储功能. 1.安 ...

  5. python之解析json

    json的格式是一个无序的键值对的集合,对象以{}包含,键值中间用:隔开,两个键值对之间用,隔开,值可以是双引号引起来的字符串(string),数值(number),true,false,null,对 ...

  6. C关系运算结果及逻辑运算结果保存

    http://service.exmail.qq.com/

  7. s2选择框的全选和反选jQuery

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. notepad++ 行首行尾添加字符

    有一次要处理SQL,拿到了脚本.但是要将其写入java 代码中,要在行首和行尾添加上引号.利用notepad++进行编辑. $表示行尾,^表示行首. 如上图,就这样.很高效. 如果只是在行尾添加字符, ...

  9. Spring-JDBC模板-事务

    Spring-JDBC模板-事务 1.事务概述 什么是事务 逻辑上的一组操作,组成这组操作的各个单元要么全部成功要么全部失败 事务的特点ACID 原子性:事务不可分割(事务要么成功,要么失败) 一致性 ...

  10. ArcGIS帮助文档VS帮助文档不能复制图片的解决方法

    ArcGIS帮助文档VS帮助文档不能复制图片的解决方法(非常有用)   问题:ArcGIS的学习文档,开发文档,vs的帮助文档,一般都不能复制图片,有的甚至不能复制文本.   解决方法 在文档空白处右 ...