java.util.Collections 클래스는 자바 컬렉션 프레임워크에 대한 유틸리티 메서드를 제공하는 클래스입니다. 이 클래스는 주로 컬렉션에 대한 정렬, 검색, 동기화 등의 연산을 수행하는 데 사용됩니다.
1. Collections 클래스의 주요 메서드
1. 1 정렬 (Sorting)
- sort(List<T> list): 리스트를 오름차순으로 정렬합니다. 리스트의 요소는 Comparable 인터페이스를 구현해야 합니다.
- sort(List<T> list, Comparator<? super T> c): 리스트를 지정된 컴퍼레이터를 사용하여 정렬합니다.
1.2 섞기 (Shuffling)
- shuffle(List<?> list): 리스트의 요소를 무작위로 섞습니다.
1.3 최대 및 최소 (Max and Min)
- max(Collection<? extends T> coll): 컬렉션에서 최대값을 찾습니다.
- max(Collection<? extends T> coll, Comparator<? super T> comp): 지정된 컴퍼레이터를 사용하여 컬렉션에서 최대값을 찾습니다.
- min(Collection<? extends T> coll): 컬렉션에서 최소값을 찾습니다.
- min(Collection<? extends T> coll, Comparator<? super T> comp): 지정된 컴퍼레이터를 사용하여 컬렉션에서 최소값을 찾습니다.
1.4 이진 검색 (Binary Search)
- binarySearch(List<? extends Comparable<? super T>> list, T key): 이진 검색을 사용하여 리스트에서 요소를 찾습니다.
- binarySearch(List<? extends T> list, T key, Comparator<? super T> c): 지정된 컴퍼레이터를 사용하여 이진 검색을 수행합니다.
1.5 동기화 (Synchronization)
- synchronizedCollection(Collection<T> c): 컬렉션을 동기화된 컬렉션으로 반환합니다.
1.6 불변 (Immutable)
- unmodifiableCollection(Collection<? extends T> c): 컬렉션을 수정할 수 없는 뷰로 반환합니다.
- unmodifiableList(List<? extends T> list): 리스트를 수정할 수 없는 뷰로 반환합니다.
1.7 다른 연산들
- reverse(List<?> list): 리스트의 요소를 뒤집습니다.
- rotate(List<?> list, int distance): 리스트의 요소를 주어진 거리만큼 회전시킵니다.
- fill(List<? super T> list, T obj): 리스트의 모든 요소를 주어진 객체로 채웁니다.
- copy(List<? super T> dest, List<? extends T> src): 소스 리스트의 내용을 대상 리스트로 복사합니다.
Collections 클래스 예제
import java.util.*;
public class CollectionsExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5));
// 정렬
Collections.sort(numbers);
System.out.println("Sorted List: " + numbers);
// 최대값 및 최소값
System.out.println("Max: " + Collections.max(numbers));
System.out.println("Min: " + Collections.min(numbers));
// 섞기
Collections.shuffle(numbers);
System.out.println("Shuffled List: " + numbers);
// 이진 검색
Collections.sort(numbers); // 이진 검색을 위해 정렬 필요
int key = 5;
int index = Collections.binarySearch(numbers, key);
System.out.println("Index of " + key + ": " + index);
}
}
이 예제에서는 Collections 클래스의 몇 가지 메서드를 사용하여 리스트를 정렬하고, 최대값과 최소값을 찾고, 섞은 다음, 이진 검색을 수행합니다. 이 클래스는 다양한 유틸리티 메서드를 제공하므로 필요에 따라 사용할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 제네릭 클래스의 선언 (0) | 2023.11.19 |
---|---|
자바 제네릭스(Generics) (0) | 2023.11.19 |
자바 컬렉션 프레임워크 Properties (0) | 2023.11.19 |
자바 컬렉션 프레임워크 TreeMap (0) | 2023.11.19 |
자바 컬렉션 프레임워크 Hashtable (0) | 2023.11.18 |