大家好 我想对 2 个相关文件进行排序,创建一个可以对它们进行排序的唯一索引
我有一个格式如下示例的 .txt 文件:
File1
Houston
Chicago
Seattle
Cleveland
另一个文件的格式如下:
File2
44
33
55
22
我想要以下输出:
Seattle 55
Houston 44
Chicago 33
Cleveland 22
我已经从 .txt 文件创建了 2 个对象数组,因此由于“< 或 >”运算符,我无法使用冒泡排序。我使用 .sort 函数对分数进行排序,但通过这种方式,我不会创建索引来对团队进行排序。我该如何解决这个问题?
这是我的代码
private void visualizzaClassificaButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
List<String> teams = new ArrayList<String>();
List<Float> scores = new ArrayList<Float>();
try {
FileInputStream fstream = new FileInputStream("C:/Users/Fra....../file1");
FileInputStream fstream2 = new FileInputStream("C:/Users/Fra...../file2");
DataInputStream in = new DataInputStream(fstream);
DataInputStream in2 = new DataInputStream(fstream2);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
BufferedReader br2 = new BufferedReader(new InputStreamReader(in2));
String team = null;
String score = null;
while ((score = br.readLine()) != null && (team = br2.readLine()) !=null) {
teams.add(team);
scores.add(Float.parseFloat(score));
}
Object[] squadreTutte = teams.toArray();
Object[] punteggiTutti = scores.toArray();
Arrays.sort(punteggiTutti, Collections.reverseOrder());
//????????????????????????????????
for(int index=0; index<punteggiTutti.length; index++){
System.out.println(punteggiTutti[index]);
System.out.println(squadreTutte[index]);
}
in.close();
} catch (Exception e) {
}
}
请帮忙
最佳答案
当有人想要对并行数组进行排序时,几乎总是出现 object denial 的情况。 .
您应该做的是创建一个对象来保存名称、分数对:
public class Team implements Comparable<Team> {
private final String name;
private final int score;
public Team(final String name, final int score) {
this.name=name;
this.score=score;
}
// add getters
public int compareTo(Team other) {
if (this.score != other.score) {
return Integer.valueOf(this.score).compareTo(other.score);
} else {
return this.name.compareTo(other.name);
}
}
}
然后,在读取文件时,为文件中的每一行创建一个 Team
对象,将它们放入 Collection
中并对其进行排序。您需要实现 Comparable
在您的类(class)中(正如我上面所做的那样)或提供 Comparator
对它们进行排序。
关于java - 在java中对相关文本文件进行排序创建公共(public)索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296807/