Java - 对名称数组进行排序以匹配其分数

时间:2014-11-23 21:57:05

标签: java arrays sorting names

尝试对包含参与者名称的String数组进行排序,以匹配包含测验分数的分数数组。我设法将得分从最高到最低排序,但名字位置错误。

1 个答案:

答案 0 :(得分:2)

嗯,这就是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);

额外阅读