[Java] 자바 컬렉션 프레임워크 정리

최대 1 분 소요

컬렉션 프레임워크 란?

자바에서 배열을 사용할때 발생할 수 있는 여러가지 문제점(배열의 크기 고정, 데이터 삭제시 메모리 낭비 등)을 해결하기 위해, 널리 알려져 있는 자료구조들을 바탕으로 객체나 데이터들을 효율적으로 관리(추가,삭제,검색,저장)할 수 있는 자료구조들이 들어있는 라이브러리컬렉션 프레임워크라고 한다.


컬렉션 프레임워크의 대표 인터페이스

컬렉션 프레임워크에서는 컬렉션을 크게 3가지 타입(List, Map, Set)이 존재한다고 인식하고, 각 컬렉션을 다루는데 필요한 기능을 가진 3가지 인터페이스를 정의했다. 그리고 ListSet 의 공통된 부분을 뽑아서 새로운 인터페이스인 Collection 을 추가로 정의 하였다.



이미지



인터페이스 ListSet 을 구현한 컬렉션 클래스들은 서로 많은 공통부분이 있어서, 공통된 부분을 다시 뽑아 Collection 인터페이스를 정의할 수 있었지만, Map 인터페이스는 이들과 전혀 다른 형태로 컬렉션을 다루기 때문에 같은 계층 상속도에 포함되지 못했다.



인터페이스 구현클래스 특징
List ArrayList, LinkedList, Stack, Vector 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
Set 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다. HashSet, TreeSet
Map 키와 값의 쌍으로 이루어진 데이터의 집합으로 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. HashMap, TreeMap, HashTable, Properties