Collections란?
Arrays가 배열과 관련된 메서드를 제공하는 것처럼, Collections는 컬렉션과 관련된 메서드를 제공한다.
모든 메서드가 static으로 import static java.util.Collections.*; 선언을 해주면 메서드만 적어서 사용 가능하다.
아래 예제를 통해 다양한 메서드를 살펴보자.
- addAll(list, 1, 2, 3, 4, 5) : list에 1, 2, 3, 4, 5를 추가
- rotate(list, 2) : list의 요소를 오른쪽으로 두 칸씩 이동
- swap(list, 0, 2) : list의 첫 번째와 세 번째를 교환
- shuffle(list) : 저장된 요소의 위치를 임의로 변경 (실행할 때마다 위치가 바뀜)
- sort(list) : 오름차순 정렬
- sort(list, reverseOrder()) : 내림차순 정렬
- reverse(list) : 내림차순 정렬
- binarySearch(list, 3) : list에서 3이 저장된 위치(index)를 반환
- max(list) : 최댓값
- min(list) : 최솟값
- fill(list, 9) : list를 9로 채움
- nCopies(list.size(), 2) : list와 같은 크기의 배열을 생성하고 2로 채움 -> 결과 변경 불가
- disJoint(list, newList) : 두 list의 공통 요소가 없으면 true, 공통 요소가 있으면 false
- copy(list, newList) : newList의 요소를 list에 복사
- replaceAll(list, 2, 1) : list의 2를 모두 1로 변경
- enumeration(list) : list의 내용을 출력
package java11;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import static java.util.Collections.*;
public class Ex11_19 {
public static void main(String[] args) {
List list = new ArrayList();
System.out.println(list); // []
addAll(list, 1, 2, 3, 4, 5);
System.out.println(list); // [1, 2, 3, 4, 5]
rotate(list, 2);
System.out.println(list); // [4, 5, 1, 2, 3]
swap(list, 0, 2);
System.out.println(list); // [1, 5, 4, 2, 3]
shuffle(list);
System.out.println(list); // [3, 1, 2, 5, 4]
sort(list);
System.out.println(list); // [1, 2, 3, 4, 5]
sort(list, reverseOrder());
System.out.println(list); // [5, 4, 3, 2, 1]
int idx = binarySearch(list, 3);
System.out.println("index of 3 = " + idx); // index of 3 = 2
System.out.println("max = " + max(list)); // max = 5
System.out.println("min = " + min(list)); // min = 1
fill(list, 9);
System.out.println(list); // [9, 9, 9, 9, 9]
List newList = nCopies(list.size(), 2);
System.out.println(newList); // [2, 2, 2, 2, 2]
System.out.println(disjoint(list, newList)); // true
copy(list, newList);
System.out.println("newList = " + newList); // newList = [2, 2, 2, 2, 2]
System.out.println("list = " + list); // list = [2, 2, 2, 2, 2]
replaceAll(list, 2, 1);
System.out.println("list = " + list); // list = [1, 1, 1, 1, 1]
Enumeration e = enumeration(list);
ArrayList list2 = list(e);
System.out.println("list2 = " + list2); // list2 = [1, 1, 1, 1, 1]
}
}