java 文本排序_如何使用Java按最高编号对文本文件进行排序
使用像TreeMap这样的有序集合,它按照键的自然顺序保存其条目(键值映射)。因为,您希望对高分进行排序,将分数作为键和玩家名称作为其值。
// instantiate your sorted collection
Map highestScores = new TreeMap();
// setup a file reader
BufferedReader reader = new BufferedReader(
new FileReader(new File("/path/to/file")));
String line = null;
while ((line = reader.readLine()) != null) { // read your file line by line
String[] playerScores = line.split(": ");
// populate your collection with score-player mappings
highestScores.put(Integer.valueOf(playerScores[1]), playerScores[0]);
}
// iterate in descending order
for (Integer score : highestScores.descendingKeySet()) {
System.out.println(highestScores.get(score) + ": " + score);
}
的输出强>的
Eric: 25
Oscar: 18
Bert: 16
John: 12
Carl: 9
修改强>
两个或更多玩家很可能拥有相同的高分。因此,排序后的集合必须更加复杂,但如果您已经理解了上面的那个,那么理解这个集合就不会有麻烦了。
现在我们不得不将得分映射到玩家,我们必须将其映射到List个玩家(具有相同的高分):
// {key - value} = {high score - {list, of, players}}
TreeMap> highestScores =
new TreeMap>();
BufferedReader reader = new BufferedReader(
new FileReader(new File("/path/to/file")));
String line = null;
while ((line = reader.readLine()) != null) {
String[] playerScores = line.split(": ");
Integer score = Integer.valueOf(playerScores[1]);
List playerList = null;
// check if a player with this score already exists
if ((playerList = highestScores.get(score)) == null) { // if NOT,
playerList = new ArrayList(1); // CREATE a new list
playerList.add(playerScores[0]);
highestScores.put(Integer.valueOf(playerScores[1]), playerList);
} else { // if YES, ADD to the existing list
playerList.add(playerScores[0]);
}
}
// iterate in descending order
for (Integer score : highestScores.descendingKeySet()) {
for (String player : highestScores.get(score)) { // iterate over player list
System.out.println(player + ": " + score);
}
}
的输出强>的
Eric: 25
Oscar: 18
Bert: 16
John: 12 *
Jane: 12 *
Carl: 9
java 文本排序_如何使用Java按最高编号对文本文件进行排序相关推荐
- java map按照value排序_基础:Java集合需要注意的 5 个问题
点击上方 Java后端,选择 设为星标 优质文章,及时送达 Java集合中的List.Set和Map作为Java集合食物链的顶级,可谓是各有千秋.本文将对于List.Set和Map之间的联系与区别进行 ...
- java 内存排序_详细解析Java内存,处理器重排序,编译器重排序以及它对线程的影响...
欢迎大家搜索"小猴子的技术笔记"关注我的公众号,有问题可以及时和我交流. 我们在编写程序的时候有一个编写代码的顺序,那么计算机执行的时候就是按照我们编写代码的顺序来执行的吗?答案是 ...
- java arraylist排序_最全Java集合笔记
集合概述 什么是集合 集合框架:用于存储数据的容器. 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大块内容:对外的接口.接口的实现和对集合运算的算法. 接口:表示集 ...
- [转载] java中对数组进行排序_如何在Java中对数组排序
参考链接: Java中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...
- java中对数组进行排序_如何在Java中对数组排序
java中对数组进行排序 Java Array is like a container that can hold a fixed number of the same type of items, ...
- java 文本编辑器_「java文本编辑器」用Java实现文本编辑器 - seo实验室
java文本编辑器 源码里有注释:import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; ...
- java原始类型排序_海牛部落 java 系列教程:(5)数组和排序
1 数组 数组是编程语言中最常见的的数据结构,其本身是个引用类型数据. java数组要求所有的数组元素具有相同的数据类型. 一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,数组的长度将不可变 ...
- 全面理解java内存模型_深入理解Java内存模型(八)——总结
处理器内存模型 顺序一致性内存模型是一个理论参考模型,JVM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照.JVM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序 ...
- java for循环_愉快地学Java语言:第五章 循环
导读 本文适合Java入门,不太适合Java中高级软件工程师.本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述.本篇文章只是这个系列中的一篇,如果 ...
- java在线编译器_什么是Java内存模型
在知识星球中,有个小伙伴提了一个问题:有一个关于JVM名词定义的问题,说"JVM内存模型",有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机 ...
最新文章
- 10秒一部电影,全球首个5G数据连接完成
- 最短路算法整理 1557 热浪
- 使用密钥加密码加密_创建基于密码的加密密钥
- python 数据类型之间的转换
- 牛客16437 买铅笔
- windows7官方原版_从零开始学装系统——微软官方原版windows7详细安装流程
- 在Qsys中创建用户自定义IP
- selenium 清空缓存
- 职业院校教师招聘结构化面试
- 打印表格打印机没有反应_windows10下office2016文档和表格 hp打印机 按打印没反应解决办法...
- Elasticsearch+logstash+kibana
- SSA动态字幕制作技术讲座(转)
- 小米4可以刷入linux,给小米4刷上SailfishOS是怎样的体验?附刷机教程
- 前端市场又“饱和”了,还有必要学吗?
- 英语专业自学python_如何做好英专人? 给迷茫英专生的一些建议
- #每天一道算法题:出现一次与出现k次的数
- (轻便)调试JavaScript的旺旺插件(基于jzshmyt的javascript-logger)
- 如何查看exe或dll的依赖库dll
- 信用卡葵花宝典 阅读笔记(三)
- android自定义打对勾的连续签到效果