Mr.Nidhogg 2022-04-22 19:39 采纳率: 100%
浏览 36
已结题

有关HashMap以及排序的问题

问题表述

我想将下方图片按照合计由大到小进行排序,并将结果写入新的txt文件中

img

结果得到了如下文件

img

运行结果及报错内容

运行结果正如上述截图,少了部分数据且排序的结果也不正确,在我的印象中HashMap会对key进行排序,因此选用HashMap集合发现结果不对后也进行了调试,排序的问题暂且不论,数据变少是在IO流读入新的一行数据后,再添加到HashMap的过程中有时会将之前添加的数据顶替掉,我并没有发现原因

问题相关代码,请勿粘贴截图
import java.io.*;
import java.util.HashMap;

/**
 * @author Nidhogg
 */
public class TheThirdInFirstTask {

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>(16);
        BufferedReader br = null;
        BufferedWriter bw = null;
        try {
            br = new BufferedReader(new FileReader("e:/奖牌金榜.txt"));
            bw = new BufferedWriter(new FileWriter("e:/奖牌金榜(排序).txt"));
            String str;
            //处理表头
            str = br.readLine();
            bw.write(str);
            bw.newLine();
            //处理数据
            while((str = br.readLine()) != null) {
                //将所读取到的哪行数据按","进行分隔
                String[] arr = str.split(",",0);
                String details = arr[0]+","+arr[1]+","+arr[2]+","+arr[3];
                String total = arr[4];
                map.put(total,details);
            }

            for (String key : map.keySet()) {
                String value = map.get(key);
                str = value+","+key;
                bw.write(str);
                bw.newLine();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if (br != null) {
                    br.close();
                }
                if (bw != null) {
                    bw.close();
                }
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

我想要得到的帮助

请告诉我出现这种结果的原因以及我该如何改正

  • 写回答

1条回答 默认 最新

  • 黑色幽默595 2022-04-22 20:06
    关注

    这里不是让你用 循环去遍历到,这里是让你用compareTo ,重写里面的排序规则的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 4月22日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来