본문 바로가기

언어공부/Java

자바 컬렉션(collection), 컬렉션 프레임워크, 컬렉션 인터페이스의 메소드

자바 컬렉션(collection)에 대해서 알아보자.

컬렉션 프레임워크(Collection Framework)

컬렉션 프레임워크는 다수의 데이터 그룹을 저장하는 클래스들을 표준화한 설계를 뜻한다. Java API문서에는 컬렉션 프레임워크를 데이터 그룹으로 다루고 표현하기 위한 단일화된 구조(architecture)라고 정의하고있다.

 

JDK1.2 이전까지는 Vector, Hashtable와 같은 컬렉션 클래스, 다수의 데이터를 저장할 수 있는 클래스들을 서로 다른 각자의 방식으로 처리해야 했으나 1.2부터는 컬렉션 프레임워크가 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었다.

 

컬렉션의 특징으로는 복수개의 타입을 동시 저장할 수 있고 복수개의 요소값을 동시 저장이 가능하다. 또한 가변적 배열이라고 볼 수 있으며, 컬렉션은 자바에만 있다.

 

라이브러리와 프레임워크

라이브러리는 공통으로 사용될만한 유용한 기능을 모듈화하여 제공하는데 비해, 프레임워크는 단순히 기능뿐만 아니라 프로그래밍 방식을 정형화하여 프로그램의 개발 생산성을 높이고 유지보수를 용이하게 한다.

 

컬렉션 프레임워크의 핵심 인터페이스

 

직사각형은 인터페이스를 뜻한다.

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

 

인터페이스 특 징
List 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
구현 클래스: ArrayList, LinkedList, Stack, Vector 등..
Set 순서가 없는 데이터의 집합. 데이터의 중복을 허용하지 않는다.
구현클래스: HashSet, TreeSet 등..
Map 키(key)는 값(value)의 쌍(pair)으로 이루어진 데이터의 집함.
순서가 없고, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
구현클래스 : HashMap, TreeMap, Hashtable, Properties 등..

 

여기서 키(key)는 데이터 집합 중에서 어떤 값(value)을 찾는데 열쇠(key)가 된다는 의미에서 붙여진 이름이다. 그래서 키는 중복을 허용하지 않는다. 컬렉션 프레임워크의 모든 컬랙션 클래스들은 List, Set, Map중의 하나를 구현하고 있으며, 구현한 인터페이스의 이름이 클래스의 이름에 포함되어 있어서 이름만으로 클래스의 특징을 쉽게 알 수 있도록 되어있다.

 

Collection 인터페이스의 메소드

List와 Set의 조상인 Collection인터페이스에는 다음과 같은 메소드들이 정의되어 있다.

 

boolean add(Object o) : 지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에 추가한다.

 

void clear() : Collection의 모든 객체를 삭제한다.

 

bollean contains(Object o) : 지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에 포함되어 있는지 확인한다.

 

boolean equals(Object o) : 동일한 Collection인지 비교한다.

 

Iterator iterator() : Collection의 Iterator를 얻어서 반환한다.

 

bollean remove(Object o) : 지정된 객체를 삭제한다.

 

int size() : Collection에 저장된 객체의 개수를 반환한다.

 

Object[] toArray() : Collection에 저장된 객체를 객체배열(Object[])로 반환한다.

Object[] toArray(Objectp[] a) : 지정된 배열에 Collection의 객체를 저장해서 반환한다.

 

Collection인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고, 추가하고 삭제하는 등 컬렉션을 다루는데 가장 기본적인 메소드들을 정의하고 있다.