读取工程下的文档 统计重复的姓名 并按次数排序 java_java并打印出重复的姓名和重复的次数,并按重复次数排序...
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并打印出重复的姓名和重复的次数,并按重复次数排序...相关推荐
- 教你用java统计目录下所有文档的词频
本文是统计目录下所有文档的词频top10,非单个文档,包含中文和英文. 直接上代码: 1 package com.huawei.wordcount; 2 3 import java.io.Buffer ...
- 多模态大模型时代下的文档图像智能分析与处理
多模态大模型时代下的文档图像智能分析与处理 0. 前言 1. 人工智能发展历程 1.1 传统机器学习 1.2 深度学习 1.3 多模态大模型时代 2. CCIG 文档图像智能分析与处理论坛 2.1 文 ...
- C#读取与修改XML文档
在项目开发中,对XML文档的操作是很常用的,这里,简单的说明读取与修改XML文档 XML文档的格式 <?xml version="1.0" encoding="ut ...
- Java 添加、读取、删除PPT文档属性
文档属性是一些描述性的信息,它未包含在文件的实际内容中,提供有关文件的信息,可用来帮助查找和整理文件.以下示例中将介绍通过Java程序来添加PPT文档属性.读取.删除PPT文档中已有属性的方法. 使用 ...
- java读取桌面文件_用java读取桌面上的文档abc.txt,程序怎么写?
用java读取桌面上的文档"abc.txt",程序怎么写? 关注:141 答案:6 mip版 解决时间 2021-02-08 20:51 提问者一段小時光 2021-02-08 ...
- C#中XmlDocument读取和创建 XML 文档
系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...
- 金税接口Sap下传文档
* Program ID/Name: ZSDE1001 Date written: 20080516 * Author's name: xh Last update: * Program title: ...
- 今晚直播 | 微软亚洲研究院徐毅恒:预训练时代下的文档智能
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- 中文Ubuntu主目录下的文档文件夹改回英文
想把中文Ubuntu主目录下的文档文件夹改回英文,在Terminal下面操作的时候要输入中文特别不方便,于是便用了更改名字的想法 方法一: 首先把那几个中文名称修改成相应的英文,比如 Desktop. ...
最新文章
- rip协议中周期性广播路由信息的报文_距离矢量路由协议(RIP)
- WINCE中设置FTP用户密码
- linux cache buffer区别,Linux buffer/cache异同
- winform B窗體調用A窗體的DATAGRIDVIEW刷新
- p6 软件 服务器没有项目了,前后端分离项目一台服务器上线
- js工作笔记003---js编写习惯_提高网页显示速度
- python创建一个字典、其中值为1_从2个列表创建一个字典,其中一个作为键,另一个作为python中的值...
- DSP复习笔记(2)——TMS320F28335芯片内部结构
- 招投标工作中投标书编制的流程是怎样的?
- 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
- UltraISO制作U盘系统盘安装CentOS经验分享
- D类放大器工作原理详解
- IE浏览器无法打开网页
- 八皇后问题 回溯法
- 2017-07-07 2,3,5,7倍数
- 量化投资中的神奇特点
- Yolo-V4数据增强
- 在配置SSH免密登录时报错:/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.pub': 没有那个文件或目录
- 联合证券|“仰望”概念爆发,多股涨停!人气龙头股罕见“炸板”
- Dcloud学习资料汇总+视频教程
热门文章
- 为什么电脑浏览器显示时钟快了_xp打开网页提示“你的时钟慢了”的原因及解决方法...
- 逻辑回归-鸢尾花数据集
- 关于LeakCanary检测华为手机内存泄漏问题
- 软件安装时出现Command line option syntax error?
- Oracle set timing on
- 几个可以提高工作效率的Python内置小工具
- 《动手学深度学习》学习之路01-- Kaggle⽐赛:房价预测
- 傲气雄鹰android 3dm,傲气雄鹰 重载
- Linux操作系统下复现github上的项目(一):下载项目、配置环境
- M2 MacBookAir售价是多少 M2 MacBookAir配置如何