Programming/Java

[JAVA] 컬렉션 프레임워크 _ List/Set/Map

Criming 2022. 8. 2. 11:05

 

컬렉션 → 객체의 수집 및 저장

컬렉션 프레임워크 → 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 라이브러리

 

컬렉션 프레임워크(collection framework)란?

 

자바에서 컬렉션 프레임워크란, 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다.

즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.

 

이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다.

 

[ 컬렉션 프레임워크 주요 인터페이스 ]

인터페이스 분류
특징
구현 클래스
collection
List 계열
순서를 유지하고 저장(인덱스로 관리됨)
중복 저장 가능
ArrayList, Vector, LinkedList, Stack, Queue
Set 계열
순서를 유지하지 않고 저장
중복 저장 안됨
HashSet, TreeSet
Map 계열
키와 값의 쌍으로 저장
키는 중복 저장 안됨(값은 중복 가능)
HashMap, Hashtable, TreeMap, Properties

List 컬렉션 클래스 (특징: 인덱스로 관리, 중복 저장 허용) 

기능
메소드
설명
객체 추가
boolean add(E e)
주어진 객체를 맨끝에 추가
void add(int index, E element)
주어진 인덱스에 객체를 추가
set(int index, E element)
주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈
객체 검색
boolean contains(Object o)
주어진 객체가 저장되어 있는지 여부
E get(int index)
주어진 인덱스에 저장된 객체를 리턴
isEmpty()
컬렉션이 비어 있는지 조사
int size()
저장되어있는 전제 객체수를 리턴
객체 삭제
void clear()
저장된 모든 객체를 삭제
E remove(int index)
주어진 인덱스에 저장된 객체를 삭제
boolean remove(Object o)
주어진 객체를 삭제

 

Set 컬렉션 클래스 (특징: 임의의 저장순서, 중복 저장 불가)

기능
메소드
설명
객체 추가
boolean add(E e)
주어진 객체를 저장
객체가 성공적으로 (중복없이)저장되면 true를 리턴, 중복 객체면 false를 리턴함.
객체 검색
boolean contains(Object o)
주어진 객체가 저장되어 있는지 여부
isEmpty()
컬렉션이 비어 있는지 조사
Iterator<E> iterator()
저장된 객체를 한번씩 가져오는 반복자(iterator) 리턴
int size()
저장되어있는 전제 객체수를 리턴
객체 삭제
void clear()
저장된 모든 객체를 삭제
boolean remove(Object o)
주어진 객체를 삭제

 

Map 컬렉션 클래스 (특징: Key value로 구성, Key는 중복 불가능하나 value는 중복 가능함)

기능
메소드
설명
객체 추가
V put(k key, V calue)
주어진 키와 값을 추가, 저장이 되면 값을 리턴
객체 검색
boolean containsKey(Object key)
주어진 키가 있는지 여부
boolean containsValue(Object value)
주어진 값이 있는지 여부
Set<Map.Entry<K,V>>entrySet()
키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴
V get(Object key)
주어진 키의 값(value)을 리턴
boolean isEmpty()
컬렉션이 비어있는지 여부
Set<K> keySet()
모든 키를 Set 객체에 담아서 리턴
int size()
저장되어있는 전제 객체수를 리턴
Collection<V> values()
저장된 모든 값 Collection에 담아서 리턴
객체 삭제
void clear()
모든 Map.Entry(키와 값)을 삭제
V remove(Object key)
주어진 키와 일치하는 Map.Entry 삭제, 삭제가 되면 값을 리턴