본문 바로가기
쿤즈 Dev/Java

[Java] Collection API 데이터를 다루는 인터페이스와 클래스의 집합

by :)Koon 2023. 10. 8.

자바(Java)에서는 굉장히 많은 자료구조들이 존재한다. 데이터들을 조금 더 쉽고 편하게 다루기 위한 인터페이스와 클래스들이 매우 많이 존재하고 있다.

이번 포스팅에서는 데이터의 저장 관리를 처리하기 위한 Collection API가 무엇인지 알아보자.


Collection API

자바의 Collection API(Java Collection Framework)는 데이터를 저장, 관리, 처리를 위한 인터페이스와 클래스들의 집합을 말한다. 이를 사용하면 데이터를 구조화하고 조작하는데 필요한 다양한 기능들을 제공한다. Collection API는 다음과 같은 주요 인터페이스와 클래스들로 구성되어 있다.

 

주요 인터페이스

Collection

모든 컬렉션 클래스들의 기본 인터페이스이다. Collection 인터페이스는 아래와 같다. 이 역시 Iterable 인터페이스를 상속하고 있다.

인터페이스 내부에는 기본적인 함수(size, isEmpty, contains)들이 존재한다.

List, Set, Queue 인터페이스 등이 Collection을 상속받아 확장한 인터페이스 들이다.

 

List

리스트 인터페이스는 순서가 있는 데이터의 집합으로, 중복된 요소를 허용하는 한다.

public interface List<E> extends Collection<E> {
	...
}

이 역시 인터페이스이므로 이를 상속받아 구현한 클래스가 ArrayList, LinkedList, Vector 등이 있다.

 

Set

순서가 없는 데이터의 집합으로, 중복된 요소를 허용하지 않는다.

public interface Set<E> extends Collection<E> {
	...
}

Set 인터페이스를 상속받아 구현한 클래스가 HashSet, TreeSet이다.

 

Queue

선입선출(FIFO)또는 후입선출(LIFO)과 같은 순서로 요소를 관리하는 데 사용된다. 

public interface Queue<E> extends Collection<E> {
	...
}

PriorityQueue, LinkedList 등이 Queue를 상속받아 구현하였다.

 

주요 클래스

ArrayList

크기가 가변적인 배열을 구현한 클래스로, 빠른 임의 접근이 가능하다.

 

LinkedList

연결 리스트를 기반으로 하는 클래스로, 요소 간이 링크를 통해 데이터에 접근한다.

 

HashSet

해시 테이블을 기반으로 중복을 허용하지 않는 Set을 구현한 클래스다.

 

HashMap

해시 테이블을 기반으로 Key-Value 쌍을 저장하는 Map을 구현한 클래스다.

 

TreeSet

이진 검색 트리를 기반으로 정렬된 순서로 데이터를 저장하는 Set을 구현한 클래스다.

 

TreeMap

이진 검색 트리를 기반으로 Key-Value 쌍을 정렬된 순서로 저장하는 Map을 구현한 클래스다.


Collection API의 주요 특징

Collection API의 인터페이스와 구현체를 자세히 보면 모두 공통된 특징을 가지고 있다. 그 특징들은 아래와 같다.

 

Generic

컬렉션의 모든 요소들은 제네릭을 통해서 타입 안전성을 확보한다. 제너릭에 대해서는 추후 다른 포스팅에서 다뤄질 예정이다.

 

Iterator

컬렉션 인터페이스는 기본적으로 Iterator 인터페이스를 상속한다. 그래서 하위 상속받은 모든 클래스들은 요소를 반복하는 데 사용되는 인터페이스의 메서드들을 사용할 수 있다.

 

Synchronization

일부 컬렉션 클래스는 스레드 안전성을 제공하기 위해 동기화된 메서드를 제공한다.


이번 포스팅에서는 Collection API들이 무엇인지 간단하게 알아보았다. 컬렉션 API를 사용하면 데이터를 보다 효과적으로 다룰 수 있고, 다양한 자료구조와 알고리즘을 활용할 수 있다.

댓글