2014-11-23 3 views
-1

퀴즈에 대한 점수를 보유하고있는 점수 배열과 일치하도록 참가자 이름이 들어있는 문자열 배열을 정렬하려고합니다. 점수를 가장 높은 점수에서 가장 낮은 점수로 정렬 할 수 있었지만 이름의 위치가 잘못되었습니다.Java - 점수와 일치하도록 이름 배열 정렬

답변

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); 

엑스트라 리딩

+0

개체를 사용하지 않고 수행 할 수있는 방법이 있습니까? – John

+0

요점은 객체없이 처리하면 관리하기 어렵고 복잡한 코드가 생성된다는 것입니다. – christopher