Player p[] = new Player[t];
같은 객체 배열을 그리고 모든 객체는 정수 변수 이름 변수를 가지고있다.
public class Player {
public String player_name;
public int number;
}
사용자로부터 입력을받은 후 어떻게 번호 변수에 따라이 개체 배열을 정렬 할 수 있습니까?
Player p[] = new Player[t];
같은 객체 배열을 그리고 모든 객체는 정수 변수 이름 변수를 가지고있다.
public class Player {
public String player_name;
public int number;
}
사용자로부터 입력을받은 후 어떻게 번호 변수에 따라이 개체 배열을 정렬 할 수 있습니까?
: 다음
public int compareTo(Player player) {
return this.number-player.number;
}
을 배열을 정렬 할 때마다 LL Arrays.sort(p);
number의 큰 음수 값에는 작동하지 않을 수 있습니다. 'Integer.compare'사용 개선 – Puce
Comparator<Player>
을 구현하는 클래스 (예 : PlayerComparator
)를 만듭니다. 두 개의 Player
이 걸리는 compare
method을 만들어 인터페이스를 구현하십시오. 첫 번째 Player
이 두 번째 Player
보다 작거나 같거나 큰지 여부에 따라 음수, 0 또는 양수를 반환합니다.
그런 다음 PlayerComparator
을 생성하여 (배열과 함께) Arrays.sort
으로 전달할 수 있습니다.
:
Arrays.stream(p).sorted((p1, p2) -> Integer.compare(p1.number, p2.number)) .collect(Collectors.toList())
편집
는 새로운 배열을 생성하지 않는 한이,이 경우 더 효율적일 수 있습니다 두 번째 생각에/모음 :
Arrays.sort(p, (p1, p2) -> Integer.compare(p1.number, p2.number));
+1에 대한 생각은 람다 :) – mdm
사용자 정의 클래스 Comparable
인터페이스를 구현 한 다음 정렬 자바 컬렉션을 사용할 수 있도록 요 UR 어레이 (Arrays.sort()
기능)
public class Player implements Comparable<Player> {
public String player_name;
public int number;
@Override
public int compareTo(Player object) {
return this.player_name.compareTo(object.player_name);
}
}
정렬
가장 쉬운 방법은Player
가
Comparable<Player>
구현 확인한
Player
내부
compareTo(Player)
방법을 구현하는 것이다
Player p[] = new Player[t];
// do stuff
Arrays.sort(p);
이 같은 일을 당신은 숫자 변수에 게터이 필요 것 :
public class Player {
public String player_name;
public int number;
public int getNumber() {
return number;
}
}
그리고 자바 8로, 당신은 Comparing
팩토리 클래스를 사용하여 정렬 할 수 있습니다 :
Player[] p = new Player[t];
Arrays.sort(p, Comparator.comparingInt(Player::getNumber));
이됩니다
Comparator<Person>
만들기방법.p -> player.getNumber()
의 줄임말 인 메서드 참조입니다.
Ref. http : // stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property? rq = 1 (목록의 경우 [Arrays.sort] (http://docs.oracle.com/javase/7)를 참조하십시오. /docs/api/java/util/Arrays.html#sort(T[],%20java.util.Comparator))) – user2864740
'Arrays.sort'와'Comparator'에 대해 읽으십시오 –
눈을 오른쪽으로 "관련"섹션을 클릭하면 수십 개의 중복 된 질문을 찾을 수 있습니다. –