개발언어/JAVA

[JAVA] 컬렉션 프레임워크 (Collection Framework / JCF)

to,min 2024. 11. 27. 22:29

[Collection Framework] 

- Data Structure 종류의 형태들을 자바 클래스로 구현한 모음

- Collection Framework에 담을 수 있는 데이터는 Object(객체) 뿐이기 때문에 자바의 primitive 타입(int, double 등) 을 wrapper 타입으로 변환하여 Integer 객체나 Double 객체로 Boxing해서 저장해야 함

- Collection 인터페이스와 Map 인터페이스로 나뉨

 

[Colleciton Framework 종류] 

 

1. Iterable 인터페이스

- 최상위 인터페이스

메서드 설 명
default void forEach(Consumer<? super T> action) 함수형 프로그래밍 전용 루프 메서드
Iterator<T> iterator() 컬렉션에서 이터레이터를 구현
default Spliterator<T> splierator() 파이프라이닝 관련 메소드

 

2. Collection 인터페이스

- List, Set, Queue에 상속을 하는 실질적 최상위 컬렉션 타입

- 업캐스팅으로 다양한 종류의 컬렉션 자료형을 받아 자료를 삽입, 삭제, 탐색 기능 제공 (다형성 개념)

메서드 설 명
boolean add(Object o)
boolean addAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에 추가
boolean contains(Object o)
boolean containsAll(Collection c)
지정된 객체(o) 또는 Collection의 객체들이 Collection에 포함되어 있는지 확인
boolean remove(Object o)
boolean removeAll(Collection c)
지정된 객체 또는 지정된 Collection에 포함된 객체들을 삭제
boolean retainAll(Collection c) 지정된 Collection에 포함된 객체만을 남기고 다른 객체들은 Collection에서 삭제.
사실상 removeAll 의 대칭 버전. (교집합 동작)
이 작업으로 Collection에 변화가 있으면 true를 없으면 false를 반환
void clear() Collection의 모든 객체를 삭제
boolean equals(Object o) 동일한 Collection인지 비교
int hashCode() Collection의 hash code를 반환
boolean isEmpty() Collection이 비어있는지 확인
Iterator iterator() Collection의 iterator를 얻어서 반환 (상위 Iterable 인터페이스를 상속)
int size() Collection에 저장된 객체의 개수를 반환
Object[] toArray() Collection에 저장된 객체를 객체배열(Object[])로 반환
Object[] toArray(Object[] a) 지정된 배열에 Collection의 객체를 저장해서 반환

 

3. List 인터페이스

- 저장 순서가 유지되는 컬렉션 구현할 때 사용

- 중복 저장 허용

- ArrayList / LinkedList / Vector / Stack

메서드 설 명
void add(int index, Object element)
boolean addAll(int index, Collection c)
지정된 위치(index)에 객체(element) 또는
컬렉션에 포함된 객체들을 추가한다.
Object remove(int index) 지정된 위치(index)에 있는 객체를 삭제하고 삭제된 객체를 반환한다.
Object get(int index) 지정된 위치(index)에 있는 객체를 반환한다.
Object set(int index, Object element) 지정된 위치(index)에 객체(element)를 저장한다.
int indexOf(Object o) 지정된 객체의 위치(index)를 반환한다. (순방향)
int lastIndexOf(Object o) 지정된 객체의 위치(index)를 반환한다. (역방향)
List subList(int fromIndex, int toIndex) 지정된 범위(from ~ to)에 있는 객체를 반환한다.
ListIterator listIterator()
ListIterator listIterator(int index)
List의 객체에 접근할 수 있는 ListIterator를 반환한다.
void sort(Comparator c) 지정된 비교자(comparator)로 List를 정렬한다.

 

4. Queue 인터페이스

- 선입선출(FIFO) 구조

- 자바에서 Queue는 인터페이스고 필요에 따라 큐 컬렉션 골라 사용 가능

- PriorityQueue / Dequeue / ArrayDeque / LinkedList

메서드 설 명
boolean add(Object o) 지정된 객체를 Queue에 추가
저장공간 부족 시 IllegalStateException 발생
Object remove() Queue에서 객체를 꺼내 반환
비어있을 경우 NoSuchElementException 발생
Object element() 삭제없이 요소를 읽어온다
비어있을 경우 NosuchElementException 발생
boolean offer(Object o) Queue에 객체를 저장
Object poll() Queue에서 객체를 꺼내서 반환
비어있을 경우 null을 반환
Object peek() 삭제없이 요소를 읽어온다
비어있을 경우 null을 반환

 

5. Set 인터페이스

- 중복 허용하지 않고 순서 유지하지 않음

- 순서가 없으니 get(index) 사용 불가

- 중복 허용하지 않아 null도 한개만 가능

- HashSet / LinkedHashSet(순서o) / TreeSet 

메서드 설명
boolean add(E e) 주어진 객체를 저장 후 성공적이면 true를 중복 객체면 false를 리턴합니다.
boolean contains(Object o) 주어진 객체가 저장되어있는지 여부를 리턴합니다.
Iterator<E> iterator() 저장된 객체를 한번씩 가져오는 반복자를 리턴합니다.
isEmpty() 컬렉션이 비어있는지 조사합니다.
int Size() 저장되어 있는 전체 객체수를 리턴합니다.
void clear() 저장된 모든 객체를 삭제합니다.
boolean remove(Object o) 주어진 객체를 삭제합니다.

 

6. Map 인터페이스

- Key와 Value로 이루어진 데이터 집합

- Value는 중복 가능하나 Key는 고유해야 함

- 저장순서 유지되지 않음

-  Key값을 반환할때 Set 인터페이스 타입으로 반환하고, Value값을 반환할때 Collection 타입으로 반환

   값(value)은 중복을 허용하기 때문에 Collection 타입으로 반환

   키(key)는 중복을 허용하지 않기 때문에 Set 타입으로 반환

- HashMap / LinkedHashMap / Hashtable / TreeMap

추상 메서드 설명
void clear() Map의 모든 객체를 삭제
boolean containsKey(Object key) 지정된 key객체와 일치하는 객체가 있는지 확인
boolean containsValue(Object value) 지정된 value객체와 일치하는 객체가 있는지 확인
Set entrySet() Map에 저장된 key-value쌍을 Map.Entry타입의 객체로
저장한 Set을 반환
boolean equals(Object o) 동일한 Map인지 비교
Object get(Object key) 지정한 key객체에 대응하는 value객체를 반환
int hashCode() 해시코드를 반환
boolean isEmpty() Map이 비어있는지 확인
Set keySet() Map에 저장된 모든 key객체를 반환
Object put(Object key, Object value) Map에 key객체와 value객체를 연결(mapping)하여 저장
void putAll(Map t) 지정된 Map의 모든 key-value쌍을 추가
Object remove(Object key) 지정한 key객체와 일치하는 key-value객체를 삭제
int size() Map에 저장된 key-value쌍의 개수를 반환
Collection values() Map에 저장된 모든 value객체를 반환

 

 


[참고출처]

 

🧱 Java Collections Framework 종류 💯 총정리

Java Collection Framework 자바 새내기분들은 컬렉션 프레임워크라는 단어에 뭔가 거창하고 어려운 느낌이 들수 있겠지만, 그냥 자료 구조(Data Structure) 종류의 형태들을 자바 클래스로 구현한 모음집

inpa.tistory.com

 

'개발언어 > JAVA' 카테고리의 다른 글

[JAVA] JVM (Java Virtual Machine) / Garbage Collector  (1) 2024.11.26