JAVA/[JAVA] 알고리즘

[JAVA]컬렉션 프레임워크(Collections Framework)

DoMyBestForDeveloper 2026. 1. 13. 20:32

컬렉션 프레임워크

다수의 데이터를 다루는 데 필요한 배열과 비슷하지만 더 성능이 뛰어난 많은 클래스들을 제공함

크게 3가지의 그룹이 있는데

  • List
  • Set
  • Map

이 있음. 하지만, Map 인터페이스는 전혀 다른 형태로 컬렉션을 다루기 때문에 상속계층도에 포함되지 않음

 

인터페이스 특징
List 데이터의 중복을 허용하는 순서가 있는 데이터의 집합
클래스: ArrayList, LinkedList 등
Set 데이터의 중복을 허용하지 않고, 순서를 유지하지 않는 데이터의 집합
클래스: HashSet, TreeSet 등
Map 키(key)와 값(value)로 이루어진 데이터의 집합
키는 중복을 허용하지 않고, 값의 중복을 허용하며 순서는 유지되지 않음
클래스: HashMap, TreeMap 등

 

Stack, Vactor, Hashtable, Properties와 같이 List, Set, Map가 포함되지 않은 이름의 클래스들은 컬렉션 프레임워크가 만들어지기 이전부터 존재함. 호환을 위해 설계를 변경하며 남겨두었지만, 사용하지 않는 것이 좋음

 

 

컬렉션 종류와 특징

List

ArrayList

  • 배열기반이며 데이터의 추가와 삭제에 불리하지만, 순차적으로 추가/삭제하는 경우에는 가장 빠름
  • 임의의 요소에 대한 접근성이 뛰어남
  • 데이터의 저장 순서가 유지되고 중복을 허용함
  • 컬렉션 프레임워크에서 가장 많이 사용되는 컬렉션임

LinkedList

  • 연결기반이며 중간 데이터를 추가/삭제하는 경우 유리함
  • 임의의 요소에 대한 접근성이 나쁨
  • 데이터의 저장 순서가 유지되고 중복을 허용함

Set

HashSet

  • 배열과 연결이 결합된 Hashing형태로 추가, 삭제, 검색, 접근성이 모두 뛰어남
  • 검색에는 최고 성능을 보임
  • Set 인터페이스를 구현한 가장 대표적인 컬렉션
  • 많은 양의 데이터를 저장하는데 적합함

TreeSet

  • 연결기반이며 정렬과 검색(특히 범위 검색)에 적합하지만 검색 능력이 HashSet보다 떨어짐
  • 데이터의 저장순서가 유지되지 않고 중복을 허용하지 않음
  • 검색과 정렬에 적합함

Map

HashMap

  • 키(key)와 값(value)을 묶어 하나의 데이터로 저장함
  • 연결기반이며 정렬과 검색(특히 범위검색)에 적합하지만 검색 능력이 HashMap보다 떨어짐
  • 검색과 정렬에 적합함

Properties

  • Properties(String, String)의 형태로 저장하는 단순화된 컬렉션임
  • 주로 애플리케이션의 환경설정과 관련된 속성(property)을 저장하는데 사용하고 데이털르 파일로부터 읽고 쓰는 편리한 기능을 제공함
  • 간단한 입출력은 Properties를 활용하면 몇 줄의 코드로 쉽게 해결됨

 

자료구조 설명
LinkedList 각 노드가 서로의 주소를 가지고 있는 구조로
중간에 있는 데이터를 찾거나 수정하는데 강함
Stack 마지막에 들어간 데이터가 먼저 나오는 구조
Queue 처음 들어간 데이터가 먼저 나오는 구조
Deque Stack과 Queue를 합친 구조
Hasing 배열과 LinkedList의 특성을 합친 구조로
배열 안에 LinkedList가 들어있다고 생각
Tree 여러 개의 노드가 서로 연결된 구조
각 노드에 최대 2개의 노드를 연결 할 수 있으며
루트(root)라고 불리는 하나의 노드에서부터 계속 확장 가능