Java Collection Framework에 정의 된 목록 구현에는 벡터, Arraylist 및 LinkedList가 포함됩니다. 이 컬렉션은 객체 그룹에 대한 색인 액세스를 제공합니다. 요소 추가 및 제거를 지원합니다. 그러나 내장 요소 분류 지원이 없습니다.
java.util.collections 클래스에서 Sort () 메소드를 사용하여 목록 요소를 정렬 할 수 있습니다. 목록 객체를 메소드에 전달하거나 목록과 비교기를 전달할 수 있습니다. 목록의 모든 요소가 동일한 유형의 클래스 이고이 클래스가 비슷한 인터페이스를 구현하는 경우 collections.sort ()를 호출 할 수 있습니다. 이 클래스가 비교기를 구현하지 않으면 비교기를 정렬 ()로 전달하여 정렬 할 수도 있습니다. 기본 분류 순서를 사용하여 정렬하지 않으려면 비교기를 정렬 ()로 전달하여 정렬 할 수도 있습니다.
1. 비슷한 객체는 비슷한 인터페이스를 구현합니다
공개 학생은 개인 int ind; {this.id = id; {this.name =} public static void main (string args []) {int i = 1000; i> 0; i-); 추가 (신입생 (i)); (O 인스턴스) {학생) O;
2. Collections.SORT (Object O, 비교기 C)
공개 클래스 Jiamenucomparator는 비교기를 구현합니다 (public int compart (object o1, object o2) {if (null! = o1 && null! = o2) {jiamenu menu1 = (jiamenu) o1; ) <menu.getId () {return}}}}}.
3. 목록 요소의 여러 속성을 정렬하십시오 (Commons-Beanutils 사용)
Commons-Beanutils 클래스 라이브러리에는 Javabeans를 정렬하는 데 사용할 수있는 Beancomparator 클래스가 있습니다. 그러나이 클래스는 한 번에 하나의 속성 만 정렬 할 수 있습니다. 다음은 Beancomparator를 사용하여 Javabeans의 여러 속성을 정렬하는 예입니다.
import org.apache.commons.beanutil.beancomparator; import java.util.collection; import java.util.comparator; import java.util.list; "확인되지 않은"}) public class listsorter { /*** 목록 요소의 여러 속성이 정렬됩니다. 예를 들어, listsorter.sort (list, "name", "age"), 첫 번째 정렬 * 이름 속성, 동일한 이름의 요소는 연령 속성별로 정렬됩니다. * * @param 목록에는 정렬 할 요소 목록이 포함되어 있습니다. * @param 속성 특성을 정렬 할 수 있습니다. 이전 값은 우선 순위가 높습니다. */ public static <v> void 정렬 (목록 <v> 목록, 최종 문자열 ... 속성) {collections.sort (목록, 새 비교기 <v> () {public int compar (v o1, v o2) {if (O1 == NULL == NULL IF (O1 == NULL) return 1; int result = 0)}}}};