본문 바로가기
JAVA

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

by Amy IT 2022. 6. 1.

이제까지 대량의 데이터를 저장하기 위해 배열을 사용했습니다. 하지만 배열은 여러 가지 한계점들을 가집니다. 우선 크기가 고정적이어서 지정한 크기보다 더 많은 데이터를 저장하고 싶으면 배열을 다시 생성해야 합니다. 또한, 중간에 데이터를 삽입하고 싶으면 이후 데이터들의 인덱스값을 조정해야 하며, 중간에 데이터를 삭제하면 해당 방이 비어 있게 됩니다. 이러한 한계점들을 보완하고 데이터를 더욱 효율적으로 관리하기 위해 자바에서는 다양한 종류의 컬렉션(Collection) 클래스를 제공하게 됩니다. 컬렉션 프레임워크(Collections Framework)란 대량의 데이터를 저장하는 클래스들을 표준화한 설계를 뜻합니다. 

 

 

▶ 컬렉션 특징 

 

  • 컬렉션은 배열과 다르게 하나의 컬렉션에 서로 다른 데이터 타입 저장이 가능하며, 자동으로 크기가 변경됩니다.
  • 저장되는 데이터는 참조형만 가능하며, 기본형인 경우 오토 박싱으로 저장할 수 있습니다.
  • 제네릭(Generic) 타입을 지원하므로 제네릭을 사용하여 컬렉션을 생성합니다. 

 

* 제네릭(Generic)이란?

클래스에서 사용할 데이터 타입을 컴파일시 지정하여, 잘못된 데이터가 저장되는 것을 방지하고 형변환 없이 데이터를 사용할 수 있도록 하는 문법입니다. 클래스와 인터페이스 이름 뒤에 <>를 사용하여 제네릭 타입을 표현하며, 제네릭 타입인 클래스와 인터페이스 객체 생성시 데이터 타입을 지정할 수 있습니다. 

 

 

 

▶ 컬렉션 프레임워크 계층 구조

 

 

 

인터페이스 구현 클래스 특징
Set<E> HashSet, LinkedHashSet, TreeSet 저장 순서가 없는 데이터의 집합
데이터 중복 불가
List<E> ArrayList, LinkedList, Vector 저장 순서가 있는 데이터의 집합
데이터 중복 허용
Map<K,V> HashMap, Hashtable, TreeMap 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합
저장 순서가 없으며, 키는 중복 불가, 값은 중복 허용

 

 

 

 Collection 인터페이스의 주요 메소드

 

다음은 Collection 인터페이스에 선언되어 있는 주요 메소드로서, Set과 List 계열의 클래스에서 오버라이딩되어 있어 공통적으로 사용 가능합니다. 

 

메소드 설명
boolean add(Object o)
boolean addAll(Collection c)
지정된 객체 또는 Collection의 객체들을 Collection에 추가
void clear() Collection의 모든 객체를 삭제
boolean isEmpty() Collection이 비어있는지 확인
int size() Collection에 저장된 객체의 개수
Object [] toArray() Collection에 저장된 객체를 배열로 변환
boolean contains(Object o) Collection에 o 요소를 포함하고 있는지 반환
Iterator<E> iterator() Collection에 저장된 데이터를 반복출력하기 위한 Iterator 인터페이스 반환
boolean remove(Object o)
boolean removeAll(Collection c)
지정된 객체 또는 Collection에 포함된 객체들을 삭제

 

 

이번 글에서는 컬렉션 프레임워크에 대한 내용을 개괄적으로 정리해 보았습니다. 다음 글에서 이어서 Set 계열 컬렉션 클래스의 사용법을 알아보도록 하겠습니다.

 

 

댓글