먼저이 정적 메소드 공개 정적 <t> void 정렬 (List <T> 목록, 비교기 <? Super T> C)을 살펴볼 수 있습니다.
1. 먼저 모델을 정의하십시오.
코드 사본은 다음과 같습니다.
패키지 모델;
/**
* user.java
*
* @Author Liang WP 2014 년 3 월 3 일
*/
공개 수업 사용자
{
개인 문자열 사용자 이름;
개인 int userage;
공개 사용자 ()
{
}
공개 사용자 (String username, int userage)
{
this.username = username;
this.userage = userage;
}
공개 문자열 getUserName ()
{
사용자 이름을 반환합니다.
}
public void setusername (String username)
{
this.username = username;
}
공개 int getUserage ()
{
반환 사용자 지대;
}
공개 void setUserage (int userage)
{
this.userage = userage;
}
}
2. 그런 다음 비교기를 정의하고 java.util.comparator 인터페이스를 구현 한 다음 비교 () 메소드에서 비교 규칙을 작성하십시오.
코드 사본은 다음과 같습니다.
패키지 유틸리티;
import java.util.comparator;
가져 오기 model.user;
/**
* 비교기. 자바
*
* @Author Liang WP 2014 년 3 월 3 일
*/
공개 클래스 비교기는 비교기 <user>를 구현합니다
{
@보수
public int 비교 (사용자 arg0, 사용자 arg1)
{
// 이름을 먼저 비교합니다
int flag = arg0.getusername (). compareto (arg1.getusername ());
// 이름이 동일하면 나이와 비교됩니다.
if (flag == 0)
{
return arg0.getUserage () - arg1.getUserage ();
}
리턴 플래그;
}
}
3. 정렬 할 때 java.util.collections의 정렬 (목록 목록, 비교) 메소드를 사용하십시오.
코드 사본은 다음과 같습니다.
패키지 테스트;
java.util.arraylist 가져 오기;
java.util.collections import;
Java.util.list 가져 오기;
util.comparatoruser 가져 오기;
가져 오기 model.user;
/**
* testapp.java
*
* @Author Liang Weiping 2014 년 3 월 3 일
*/
공개 클래스 테스트 app
{
public static void main (String [] arg0)
{
List <user> userList = new ArrayList <user> ();
// 데이터 삽입
userList.Add (새 사용자 ( "A", 15));
userList.Add (새 사용자 ( "B", 14));
userList.Add (새 사용자 ( "A", 14));
// 종류
Collections.Sort (userList, New ComparatorUser ());
// 결과를 인쇄합니다
for (user u : userList)
{
System.out.println (u.getusername () + "" + u.getUserage ());
}
}
}
4. 작동 결과 :
코드 사본은 다음과 같습니다.
A 14
A 15
B 14