퀴즈에 대한 점수를 보유하고있는 점수 배열과 일치하도록 참가자 이름이 들어있는 문자열 배열을 정렬하려고합니다. 점수를 가장 높은 점수에서 가장 낮은 점수로 정렬 할 수 있었지만 이름의 위치가 잘못되었습니다.Java - 점수와 일치하도록 이름 배열 정렬
-1
A
답변
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);
엑스트라 리딩
Collections class에서 읽으십시오.
Comparable Interface에서 읽으십시오.
읽으신 분은 Object Oriented Design Principles in Java입니다.
개체를 사용하지 않고 수행 할 수있는 방법이 있습니까? – John
요점은 객체없이 처리하면 관리하기 어렵고 복잡한 코드가 생성된다는 것입니다. – christopher