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 삭제, 삭제가 되면 값을 리턴
|