java 。读取文件,按某列排序并打印

标签 java arrays sorting

我有一个文本文件

category1 1 10 101 good1 1
category6 2 11 105 good5 10
category1 5 13 103 good4 6
category3 6 14 102 good2 5
category5 3 12 107 good1 3
category7 4 12 128 good8 1
category3 5 17 134 good5 8
category2 1 19 143 good4 8
category4 2 16 152 good7 8
category5 9 13 163 good8 6
category9 8 14 165 good4 4
category0 5 15 156 good3 12
category2 6 13 147 good7 1
category7 4 12 138 good5 3
category7 3 12 124 good6 9
category8 8 11 102 good9 6

我需要按类别名称对其进行排序。这是我已经拥有的:

BufferedReader reader = new BufferedReader(new FileReader("/Data.txt"));
    Map<String, String> map=new TreeMap<String, String>();
    String line="";
    while((line=reader.readLine())!=null){
        map.put(getField(line),line);
    }
    reader.close();
    for(String val : map.values()){
        System.out.println(val);
   }

它对文件数据进行排序,但仅显示唯一的行,而我需要显示所有行。怎么做?

最佳答案

将数据读入自定义类。为您的类声明 hash() 和 equals()。可选的 toString() 打印类似于输入的输出。将行读入自定义类的对象(扫描仪可选),将对象添加到列表并使用 Collections.sort() 和自定义比较器。

关于 java 。读取文件,按某列排序并打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789915/

相关文章:

arrays - 如何排除草稿出现在集合中?液体/十一

arrays - 如何在 Golang 中将字符串转换为 map[int]string

c - C语言如何读取文件并存入数组?

java - 排序功能提供不正确的结果

Java 扫描器不读取

java - 使用递归方法进行三元搜索

java - 延迟执行Java方法中的代码

c# - 获取目录中按名称排序的文件列表

c - 内存复制动态分配的数组

java - 我可以混合使用 JUnit 3 和 JUnit 4 吗?