// 이 클래스는 컬렉션에서 작동하거나 반환하는 정적 메서드로만 구성됨
// 컬렉션에서 작동하는 다형성 알고리즘이 포함됨
// Collection과 Colletions는 다른것이다
// 정적(static)메서드이므로 인스턴스화 불필요
// Collections는 클래스이다!!
// Collection인터페이스를 구현한 클래스에 대한 객체생성,정렬,병합등의 기능을 안정적으로 수행하도록 도와주는 역할| 메소드 | 설명 | 쓰는법 |
|---|---|---|
| max | 지정된 컬렉션에서 최대 요소를 반환한다. (인덱스 X) | |
| min | 지정된 컬렉션에서 초소 요소를 반환한다. (인덱스 X) | |
| sort | 지정된 컬렉션을 정렬시킨다.오버로드 메소드들이 존재하며 가장 기본적인 메소드는 자연순서에 따라 내림차순으로 정렬된다. | Collections.sort(list) |
| shuffle | 지정된 컬렉션의 요소들의 순서를 무작위로 섞는다. | Collections.shuffle(list) |
| synchronizedCollection | 지정된 컬렉션에 의해 지원되는 동기화 된 컬렉션을 재생성해 반환한다. | |
| binarySearch | 지정된 컬렉션에서 이진 탐색 알고리즘을 사용해 지정된 객체를 검색해 인덱스를 반환한다. | Collections.binarySearch(list,element(탐색할원소)) |
| disjoint | 2개의 지정된 컬렉션들에서 공통된 요소가 하나도 없는 경우 true 를 반환한다. | |
| copy | 지정된 켈렉션의 모든 요소를 새로운 컬렉션으로 복사해 반환한다. | |
| reverse | 지정된 컬렉션에 있는 순서를 역으로 변경한다. | |
| reverseOrder | Comparable인터페이스를 구현하는 객체 컬렉션에 자연순서(natural ordering)의 역순을 적용하는 comparator를 반환 |
List인터페이스를 구현하는 컬렉션에 대하여 정렬을 수행
Collections.sort()는 list / Arrays.sort()는 array에 사용된다
들어가는 값이 Date타입이면 시간적인 순서로 정렬
- String클래스와 Date클래스 모두 Comparable 인터페이스를 구현하기 때문에
- 정렬은 Comparable 인터페이스를 이용하여 이루어진다
- List인터페이스는 Comparable인터페이스를 상속하므로 정렬이 가능하다
- comparaTo()메서드는 매개변수 객체를 현재의 객체와 비교하여 음수,같으면0,크면 양수를 반환
list에 존재하는 정렬을 파괴하여서 원소들의 순서를 랜덤하게 만든다
정렬과 반대 동작을 한다
Collections클래스는 정렬된 리스트에서 지정된 원소를 이진 탐색
“정렬된 리스트” 에 한해서 탐색을 진행한다는 점을 명심!!!
선형 탐색 : 처음부터 모든 원소를 방문하는 탐색 방법으로, 리스트가 정렬되어 있지않은 경우 사용됨
이진 탐색 :
반환값이 양수이면 찾고자 하는 원소의 인덱스값을 출력
음수이면 탐색이 실패하여 원소를 찾지 못했음을 의미
단, 실패하더라도 도움이 되는 정보를 반환한다
반환값에는 현재의 데이터가 삽입될 수 있는 위치정보가 들어있다
반환값이 pos라고 한다면, (-pos-1)이 해당 데이터를 삽입할 수 있는 위치이다.
// -pos-1이 데이터 삽입 가능 index이다.
int pos = Collections.binarySearch(list, key);
if(pos < 0) list.add(-pos-1);