我有一个文本文件
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/