본문 바로가기
Java

Collections (클래스) / Collection (인터페이스)

by sgyeong 2025. 12. 23.

Collections 클래스

 

자바에서 컬렉션(List, Set 등)을 쉽게 정렬, 검색, 변형할 수 있도록 도와주는 정적 유틸리티 클래스.

컬렉션 처리 도구 역할을 한다.

정렬(sort), 섞기(shuffle), 탐색(binarySearch) 등 유용한 기능을 제공한다.

 

 

주요 메소드

 

max - 컬렉션 내에서 가장 큰 값 반환

min - 컬렉션 내에서 가장 작은 값 반환    

sort - 리스트를 정렬한다. Comparator를 사용해 정렬 방식을 지정하며, Comparator를 주지 않으면 오름차순으로 정렬한다.

shuffle - 리스트의 요소 순서를 무작위로 섞는다.

swap - 지정한 두 인덱스에 위치한 요소의 자리를 서로 바꾼다.

fill - 리스트의 모든 요소를 지정된 객체로 덮어쓴다.

copy - 리스트의 내용을 복사한다.

replaceAll - 리스트 안의 전 값을 모두 찾아 새로운 값으로 변경한다.

addAll - 지정된 모든 요소들을 컬렉션에 한꺼번에 추가한다. 

rotate - 요소들을 지정된 거리만큼 회전시킨다.

reverse - 리스트 요소들의 순서를 거꾸 뒤집어준다.

reverseOrder  - 역순 정렬을 위한 Comparator 객체를 반환한다. 

binarySearch - 이진 탐색 알고리즘을 사용하여 키가 저장 위치(index) 반환. 반드시 리스트가 정렬된 상태여야 제대로 작동한다.

synchronizedList - 멀티쓰레드 환경에서 안전하도록 동기화된 리스트를 생성한다.

unmodifiableList - 읽기 전용

asLifoQueue - 덱을 큐로 전환하여 스택처럼 동작하게 한다.

 

 

 

 

 

 

 

 

 

 

Collections 클래스와 Collection 인터페이스가 헷갈릴 수 있다.

 

Collections 클래스 vs. Collection 인터페이스

Collections 클래스 컬렉션을 다루는 유용한 메서드(sort, reverse 등)를 모아둔 정적 클래스
Collection   인터페이스 데이터 그룹의 표준 규칙을 정의 (List, Set 등)

 

 

 

Collection (인터페이스)

 

- List (순서가 있는 목록) : 데이터의 저장 순서가 유지되며, 중복 저장을 허용한다.

   ArrayList : 배열 기반으로 인덱스를 통한 조회 속도가 매우 빠르다.

   LinkedList : 데이터 간의 연결(포인터)을 이용하며, 중간에 데이터를 삽입하거나 삭제할 때 효율적이다.

 

- Set (중복을 허용하지 않는 집합) : 데이터의 순서를 유지하지 않으며, 중복된 데이터를 저장할 수 없다.

   HashSet : 정렬 순서가 없으며, 성능이 좋다.

   TreeSet  : 데이터가 오름차순으로 자동 정렬된다.

 

- Queue : FIFO 구조로 먼저 들어온 데이터가 먼저 나간다.

 

 

 

 

 

 

 

 

참고

 

 

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collections.html

 

Collections (Java SE 11 & JDK 11 )

Rotates the elements in the specified list by the specified distance. After calling this method, the element at index i will be the element previously at index (i - distance) mod list.size(), for all values of i between 0 and list.size()-1, inclusive. (Thi

docs.oracle.com

 

 

https://shurimp.tistory.com/14

 

JAVA Collections 클래스의 유용한 메소드들

알고리즘 문제를 풀다가 "아, 이 기능 있었으면 참 좋을텐데..."싶은 기능들을 검색해보면 Collections 클래스의 메소드들 안에 들어있는 경우가 많았다. 문제를 풀다가 기억해두면 좋겠다 싶어서

shurimp.tistory.com

 

'Java' 카테고리의 다른 글

String / StringBuilder / StringBuffer  (0) 2025.12.18
객체지향 프로그래밍 (OOP)  (0) 2025.12.17
[Java] URLConnection / HttpURLConnection  (0) 2025.09.10
[Java] 인터페이스 (Interface)  (0) 2025.09.10
[Java] JVM (Java Virtual Machine)  (0) 2025.09.09