☕ Java/이론

[Java] 컬렉션 프레임워크

an2z 2022. 1. 18. 18:10

컬렉션 프레임워크

  • 자바에서 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화 된 방법을 제공하는 클래스들의 모임을 의미한다.
  • 즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 미리 구현해 놓은 것이다.

 

❓ 프레임 워크 

  • 프레임 워크(Framework)란 프로그래머들이 쓸 수 있도록 "잘 정의 된 클래스들의 모임"을 말한다.
  • 프레임 워크는 관련 클래스 정의에 적용되는 설계원칙 또는 구조가 존재한다.

❓ 자료구조와 알고리즘

  • 자료구조는 데이터의 탐색, 삭제 등 다양한 측면을 고려한 데이터의 효율적인 저장 방법을 연구하는 학문이다.
  • 알고리즘은 저장된 데이터의 일부 또는 전체를 대상으로 각종 가공 및 처리의의 방법을 연구하는 학문이다.
  • 대표적인 자료구조 : 리스트(List), 스택(Stack), 큐(Queue), 트리(Tree), 해쉬(Hash)
    대표적인 알고리즘 : 버블 정렬(Bubble Sort), 퀵 정렬(Quick Sort), 이진 탐색(Binary Search)

 

 

컬렉션 구조

컬렉션 프레임워크의 클래스와 구현 인터페이스는 아래와 같다.

 

 

컬렉션 인터페이스

Iterator 인터페이스를 상속한 Collection은 가장 기본이 되는 인터페이스이다.

메소드 설명
boolean add(E e) 해당 컬렉션(collection)에 전달된 요소를 추가
void clear() 해당 컬렉션의 모든 요소를 제거
boolean contains(Object o) 해당 컬렉션이 전달된 객체를 포함하고 있는지를 확인
boolean equals(Object o) 해당 컬렉션과 전달된 객체가 같은지를 확인
boolean isEmpty() 해당 컬렉션이 비어있는지를 확인
Iterator<E> iterator() 해당 컬렉션의 반복자(iterator)를 반환
boolean remove(Object o) 해당 컬렉션에서 전달된 객체를 제거
int size() 해당 컬렉션의 요소의 총 개수를 반환
Object[] toArray() 해당 컬렉션의 모든 요소를 Object 타입의 배열로 반환

 

 

컬렉션 하위 인터페이스

  • List, Set, Queue 인터페이스는 모두 Collection 인터페이스를 상속하지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다.
  • 컬렉션 프레임워크를 구성하는 모든 클래스는 제네릭으로 표현되어있다.
  • 어떤 인터페이스를 구현하냐에 따라 인스턴스를 저장, 삭제, 참조하는 방법이 결정된다.

 

컬렉션 클래스

이때 컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스를 컬렉션 클래스(collection class)라 한다.

인터페이스 설명 구현 클래스
List<E> 순서가 있는 데이터의 집합으로,
데이터의 중복을 허용
 ArrayList, LinkedList
Set<E> 순서가 없는 데이터의 집합으로,
데이터의 중복을 허용하지 않음
HashSet, TreeSet
Map<K, V> 키(Key)와 값(Value)의 한 쌍으로 이루어진 데이터의 집합으로,
순서가 없고, 키는 중복을 허용하지 않지만 값은 중복이 가능
HashMap, TreeMap,
Hashtable

 


Reference

http://www.tcpschool.com/java/java_collectionFramework_list

https://bangu4.tistory.com/194