JavaSE 제4 7 강: 자신의 Comparator 및 Collections 상세 설명 실현

1. 지난 강연 에서 우 리 는 Comparator 의 정의 규칙 을 실 현 했 습 니 다. 상세 한 것 은 본 블 로그 의 제4 6 강 을 참조 하 시기 바 랍 니 다.
2. 배열 에서 List 중 하 나 는 그 기능 을 보조 하 는 클래스 입 니 다: Arrays
   JDK Doc 문 서 를 보면 알 수 있 듯 이 이 클래스 의 방법 은 기본적으로 정적 인 Static 입 니 다.
   마찬가지 로 set 에 도 이러한 종류의 보조 set 기능 이 존재 합 니 다: Collections
   JDK Doc 문 서 를 보면 알 수 있 듯 이 이런 종류의 방법 도 기본적으로 정적 인 Static 이다.
다음은 다음 과 같은 예 를 통 해 Collections 류 를 사용 하 는 방법 을 연습 하고 이런 방법 을 통 해 많은 실제 개발 중의 문 제 를 사용 할 수 있다.
이 안의 방법 매개 변수 유형 을 주의 하 십시오:
max (Collection coll) 매개 변수 유형 이 Collection 이면 List, Set 아래 대상 을 모두 안쪽 으로 넣 을 수 있 습 니 다.
reverse (List list) 매개 변수 유형 은 List 이 며, List 의 ArrayList, LinkedList 대상 의 것 만 넣 을 수 있 습 니 다.
package com.ahuier2;

import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;

public class CollecitonsTest {
	public static void main(String[] args) {
		LinkedList list = new LinkedList();
		list.add(new Integer(-8));
		list.add(new Integer(20));
		list.add(new Integer(-20));
		list.add(new Integer(8));
		
//   :    Collections.sort(list, Collections.reverseOrder());
		
		//   :
		Comparator com = Collections.reverseOrder();
		Collections.sort(list, com);
//   :		
/*		Iterator ite = list.iterator();
		while(ite.hasNext()){
			System.out.println(ite.next());
		}*/
	//   :
		for(Iterator ite = list.iterator(); ite.hasNext();){
			System.out.println(ite.next());
		}
	}
}

컴 파일 실행 결과:
20 8 -8 -20
【 설명 】: reverseOrder () 는 자연 순 서 를 찾 는 역순 으로 정렬 합 니 다. Static 방법 이기 때문에 클래스 이름 Collections 로 직접 호출 합 니 다.비교 기 를 되 돌려 줍 니 다.
        sort () 도 Static 방법 으로 반환 값 이 없 으 며, 서열 을 지정 한 비교 기 에 따라 정렬 합 니 다.
JDK Doc 문 서 를 보 세 요. shuffle () 방법 은 반환 값 이 없 으 며 지정 한 시퀀스 를 흐 트 러 뜨리 기 때문에 얻 은 시퀀스 는 무 작위 입 니 다.
package com.ahuier2;

import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;

public class CollecitonsTest {
	public static void main(String[] args) {
		LinkedList list = new LinkedList();
		list.add(new Integer(-8));
		list.add(new Integer(20));
		list.add(new Integer(-20));
		list.add(new Integer(8));
		
//   :    Collections.sort(list, Collections.reverseOrder());
		
		//   :
		Comparator com = Collections.reverseOrder();
		Collections.sort(list, com);
//   :		
/*		Iterator ite = list.iterator();
		while(ite.hasNext()){
			System.out.println(ite.next());
		}*/
	//   :
		for(Iterator ite = list.iterator(); ite.hasNext();){
			System.out.println(ite.next());
		}
		
		Collections.shuffle(list);
		for(Iterator ite = list.iterator(); ite.hasNext();){
			System.out.println(ite.next());
		}
		
	}
}

컴 파일 실행 결과:
20 8 -8 -20 20 -20 8 -8
JDK Doc 문서, max () 방법, min () 방법 을 보고 정렬 시퀀스 의 최대 값 과 최소 값 을 지정 합 니 다.
package com.ahuier2;

import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;

public class CollecitonsTest {
	public static void main(String[] args) {
		LinkedList list = new LinkedList();
		list.add(new Integer(-8));
		list.add(new Integer(20));
		list.add(new Integer(-20));
		list.add(new Integer(8));
		
//   :    Collections.sort(list, Collections.reverseOrder());
		
		//   :
		Comparator com = Collections.reverseOrder();
		Collections.sort(list, com);
//   :		
/*		Iterator ite = list.iterator();
		while(ite.hasNext()){
			System.out.println(ite.next());
		}*/
	//   :
		for(Iterator ite = list.iterator(); ite.hasNext();){
			System.out.println(ite.next());
		}
		
		Collections.shuffle(list);
		for(Iterator ite = list.iterator(); ite.hasNext();){
			System.out.println(ite.next());
		}
		System.out.println("The max value" + Collections.max(list));
		System.out.println("The min value" + Collections.min(list));
		
	}
}

컴 파일 실행 결과:
20 8 -8 -20 -8 -20 8 20 The max value20 The min value-20

좋은 웹페이지 즐겨찾기