JAVA/포스팅

자바 컬렉션 프레임워크 Collections

짜집퍼박사(짜박) 2023. 11. 19. 00:07

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