Collections.sort 메소드를 사용하여 목록을 정렬하는 방법에는 두 가지가 있습니다.
첫 번째는 목록의 객체가 다음과 같이 Comparable 인터페이스를 구현한다는 것입니다.
[java] view plain copy
/ **
* 순서에 따라 사용자 정렬
*/
공용 클래스 사용자가 Comparable
public void setName(String name) {
this.name = name;
}
public Integer getOrder() {
return order; 정수 순서 ) {
this.order = order;
} public int CompareTo(User arg0) {
return this.getOrder().compareTo(arg0.getOrder())
}
} 테스트해 보세요:
public class Test{
public static void main(String[] args) {
User user1 = new User()
user1.setName("a" );
user1.setOrder(1);
사용자 user2 = new User()
user2.setOrder(2); ; User> list = new ArrayList
list.add(user2)
list.add(user1); sort (list);
for(User u : list){
System.out.println(u.getName())
} 🎜>
출력 결과는 다음과 같습니다
a
b
두 번째 방법은 Collections.sort 오버로드 방법을 기반으로 합니다. 예:
[java] view plain copy
/* *
* 순서에 따라 사용자 정렬
*/
public class User { //여기서 Comparable 인터페이스를 구현할 필요가 없습니다.
private String name;
public String getName() {
return name; 문자열 이름) {
this.name = 이름;
}
public Integer getOrder() {
반환 순서 }
public void setOrder(Integer order) {
this.order; = order;
}
}
메인 클래스에 이렇게 작성하세요(HastSet——>List——>sort Sorting):
public class Test {
public static void main(String[] args) {
사용자 user1 = new User();
user1.setName("a")
user1.setPrice(11)
사용자 user2 = new 사용자();
user2.setName("b")
user2.setPrice(2);
Set
Hset.add(user2)
Hset.add(user1); List
Collections.sort(list,new Comparator
공개 int 비교(사용자 arg0 , 사용자 arg1) {
return arg0.getPrice().compareTo(arg1.getPrice());
System.out .println(u.getName()); return arg0.getOrder().compareTo(arg1.getOrder()); 다음으로 변경:
return arg1.getOrder().compareTo(arg0.getOrder());
가 내림차순이 됩니다.