1,张三,28

2,李四,35

3,张三,28

4,王五,35

5,张三,28

6,李四,35

7,赵六,28

8,田七,35

package com.huawei.interview;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Comparator;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.TreeSet;

public class GetNameTest {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//InputStream ips = GetNameTest.class.getResourceAsStream("/com/huawei/interview/info.txt");

//用上一行注释的代码和下一行的代码都可以,因为info.txt与GetNameTest类在同一包下面,所以,可以用下面的相对路径形式

Map results = new HashMap();

InputStream ips = GetNameTest.class.getResourceAsStream("info.txt");

BufferedReader in = new BufferedReader(new InputStreamReader(ips));

String line = null;

try {

while((line=in.readLine())!=null)

{

dealLine(line,results);

}

sortResults(results);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

static class User

{

public String name;

public Integer value;

public User(String name,Integer value)

{

this.name = name;

this.value = value;

}

@Override

public boolean equals(Object obj) {

// TODO Auto-generated method stub

//下面的代码没有执行,说明往treeset中增加数据时,不会使用到equals方法。

boolean result = super.equals(obj);

System.out.println(result);

return result;

}

}

private static void sortResults(Map results) {

// TODO Auto-generated method stub

TreeSet sortedResults = new TreeSet(

new Comparator(){

public int compare(Object o1, Object o2) {

// TODO Auto-generated method stub

User user1 = (User)o1;

User user2 = (User)o2;

/*如果compareTo返回结果0,则认为两个对象相等,新的对象不会增加到集合中去

* 所以,不能直接用下面的代码,否则,那些个数相同的其他姓名就打印不出来。

* */

//return user1.value-user2.value;

//return user1.value

if(user1.value

{

return -1;

}else if(user1.value>user2.value)

{

return 1;

}else

{

return user1.name.compareTo(user2.name);

}

}

}

);

Iterator iterator = results.keySet().iterator();

while(iterator.hasNext())

{

String name = (String)iterator.next();

Integer value = (Integer)results.get(name);

if(value > 1)

{

sortedResults.add(new User(name,value));

}

}

printResults(sortedResults);

}

private static void printResults(TreeSet sortedResults)

{

Iterator iterator = sortedResults.iterator();

while(iterator.hasNext())

{

User user = (User)iterator.next();

System.out.println(user.name + ":" + user.value);

}

}

public static void dealLine(String line,Map map)

{

if(!"".equals(line.trim()))

{

String [] results = line.split(",");

if(results.length == 3)

{

String name = results[1];

Integer value = (Integer)map.get(name);

if(value == null) value = 0;

map.put(name,value + 1);

}

}

}

读取工程下的文档 统计重复的姓名 并按次数排序 java_java并打印出重复的姓名和重复的次数,并按重复次数排序...相关推荐

  1. 教你用java统计目录下所有文档的词频

    本文是统计目录下所有文档的词频top10,非单个文档,包含中文和英文. 直接上代码: 1 package com.huawei.wordcount; 2 3 import java.io.Buffer ...

  2. 多模态大模型时代下的文档图像智能分析与处理

    多模态大模型时代下的文档图像智能分析与处理 0. 前言 1. 人工智能发展历程 1.1 传统机器学习 1.2 深度学习 1.3 多模态大模型时代 2. CCIG 文档图像智能分析与处理论坛 2.1 文 ...

  3. C#读取与修改XML文档

    在项目开发中,对XML文档的操作是很常用的,这里,简单的说明读取与修改XML文档 XML文档的格式 <?xml version="1.0" encoding="ut ...

  4. Java 添加、读取、删除PPT文档属性

    文档属性是一些描述性的信息,它未包含在文件的实际内容中,提供有关文件的信息,可用来帮助查找和整理文件.以下示例中将介绍通过Java程序来添加PPT文档属性.读取.删除PPT文档中已有属性的方法. 使用 ...

  5. java读取桌面文件_用java读取桌面上的文档abc.txt,程序怎么写?

    用java读取桌面上的文档"abc.txt",程序怎么写? 关注:141  答案:6  mip版 解决时间 2021-02-08 20:51 提问者一段小時光 2021-02-08 ...

  6. C#中XmlDocument读取和创建 XML 文档

    系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...

  7. 金税接口Sap下传文档

    * Program ID/Name: ZSDE1001 Date written: 20080516 * Author's name: xh Last update: * Program title: ...

  8. 今晚直播 | 微软亚洲研究院徐毅恒:预训练时代下的文档智能

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  9. 中文Ubuntu主目录下的文档文件夹改回英文

    想把中文Ubuntu主目录下的文档文件夹改回英文,在Terminal下面操作的时候要输入中文特别不方便,于是便用了更改名字的想法 方法一: 首先把那几个中文名称修改成相应的英文,比如 Desktop. ...

最新文章

  1. rip协议中周期性广播路由信息的报文_距离矢量路由协议(RIP)
  2. WINCE中设置FTP用户密码
  3. linux cache buffer区别,Linux buffer/cache异同
  4. winform B窗體調用A窗體的DATAGRIDVIEW刷新
  5. p6 软件 服务器没有项目了,前后端分离项目一台服务器上线
  6. js工作笔记003---js编写习惯_提高网页显示速度
  7. python创建一个字典、其中值为1_从2个列表创建一个字典,其中一个作为键,另一个作为python中的值...
  8. DSP复习笔记(2)——TMS320F28335芯片内部结构
  9. 招投标工作中投标书编制的流程是怎样的?
  10. 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
  11. UltraISO制作U盘系统盘安装CentOS经验分享
  12. D类放大器工作原理详解
  13. IE浏览器无法打开网页
  14. 八皇后问题 回溯法
  15. 2017-07-07 2,3,5,7倍数
  16. 量化投资中的神奇特点
  17. Yolo-V4数据增强
  18. 在配置SSH免密登录时报错:/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.pub': 没有那个文件或目录
  19. 联合证券|“仰望”概念爆发,多股涨停!人气龙头股罕见“炸板”
  20. Dcloud学习资料汇总+视频教程

热门文章

  1. 为什么电脑浏览器显示时钟快了_xp打开网页提示“你的时钟慢了”的原因及解决方法...
  2. 逻辑回归-鸢尾花数据集
  3. 关于LeakCanary检测华为手机内存泄漏问题
  4. 软件安装时出现Command line option syntax error?
  5. Oracle set timing on
  6. 几个可以提高工作效率的Python内置小工具
  7. 《动手学深度学习》学习之路01-- Kaggle⽐赛:房价预测
  8. 傲气雄鹰android 3dm,傲气雄鹰 重载
  9. Linux操作系统下复现github上的项目(一):下载项目、配置环境
  10. M2 MacBookAir售价是多少 M2 MacBookAir配置如何