【发布时间】:2014-11-23 21:57:05
【问题描述】:
尝试对包含参与者姓名的字符串数组进行排序,以匹配包含他们的测验分数的分数数组。我已经设法将分数从高到低排序,但是名字的位置错误。
【问题讨论】:
尝试对包含参与者姓名的字符串数组进行排序,以匹配包含他们的测验分数的分数数组。我已经设法将分数从高到低排序,但是名字的位置错误。
【问题讨论】:
嗯,这就是Object 将使您的生活变得异常轻松的地方。不要处理多个数组。处理 Person 类型的单个数组。
public class Person {
private String name;
private int score;
public Person(String name, int score) {
this.name = name;
this.score = score;
}
// you'll need some getters and setters!
}
现在您可以实现Comparable 接口。这允许您进行排序。比如……
public class Person implements Comparable<Person>
这将迫使您实现compareTo 方法..
public int compareTo(Person other)
{
if(other.getScore() > this.score) return -1;
if(other.getScore() < this.score) return 1;
return 0;
}
然后,您可以调用Collections.sort 方法为您排序..
List<Person> myPeople = new ArrayList<Person>();
// Populate it..
Collections.sort(myPeople);
补充阅读
【讨论】: