Java 컬렉션 프레임워크(Collection Framework)
프로그래밍을 하다 보면 다수의 객체 또는 자료형을 담기 위해서 배열을 사용한다. 배열에 저장하면 이후에 필요할 때 꺼내서 사용할 수 있다. 배열의 단점으로는 초기 배열을 선언할 때 크기를 지정해야 한다는 점이다. 배열을 크기는 동적으로 가변적으로 늘릴 수 없다. 그렇다면 무조건 배열의 크기를 크게 해서 생성해야 할까? 배열의 크기를 크게 해서 생성하면, 불필요한 공간으로 인해 듬성 듬성 빈 공간이 남게 된다. 자바에서는 이러한 문제점을 보완하고자 자료구조(Data Structure)를 바탕의 인터페이스와 클래스를 제공한다.
java.util 패키지
자료구조 개념의 클래스와 인터페이스는 java.util 패키지에 위치한다. 이들을 총칭해서 컬렉션 프레임워크(Collection Framework)라고 부른다. 아래 이미지는 java.util 패키지에 포함되어 있는 인터페이스이다. 각 인터페이스에 대한 설명은 tutorialspoint를 참고하자.
컬렉션(Collection), Map 인터페이스
컬렉션 프레임워크의 주요 인터페이스들은 Collection, Map 인터페이스로 크게 두 종류로 분류 할 수 있다. 두 개의 인터페이스는 데이터를 저장하는 방법에서 차이가 있다. 먼저, Collection 인터페이스는 데이터를 순서, 집합 형태의 저장공간에 담아두며, Map은 Key와 Value 형태의 저장공간에 데이터를 담아둔다.
Collection 인터페이스 내에서도 아래 이미지처럼 Set, List, Queue 인터페이스로 분류 할 수 있다. 각각의 특징은 다음과 같다. Set은 순서를 유지하지 않은 상태로 데이터를 저장한다. 그리고 동일한 데이터를 중복 저장하는 것이 안된다. List는 순서를 유지한 상태로 데이터를 저장하고, 중복 저장이 가능하다. Queue 인터페이스는 자료구조 Queue의 특징을 갖고 있다.
앞에서 설명한 List, Set, Queue는 모두 Collection 인터페이스를 상속한 인터페이스이다. Map 인터페이스는 이들과 조금 다르다. 키(Key)와 값(Value)을 하나의 쌍으로 묶어서 관리하는 구조로 되어 있기 때문이다. Map 인터페이스에서 키(Key)는 중복해서 저장할 수 없다. 아래 이미지는 Map 인터페이스를 기준으로 계층 관계를 표현한 것이다.
'Java' 카테고리의 다른 글
다른 스레드의 종료를 기다렸다가 수행하는 방법, Thread.join() (0) | 2019.04.29 |
---|---|
Future를 이용한 블로킹 방식의 작업 완료 통보 방법 (0) | 2019.04.29 |
자바에서 OS에 맞게 줄바꿈(newline) 처리 방법 (0) | 2019.04.22 |
Java 리스트(List) 컬렉션 종류 ArrayList, Vector, LinkedList (1) | 2019.04.22 |
Maven pom.xml 파일에 Oracle OJDBC Dependency 추가 (2) | 2019.04.15 |
댓글