Collection

0

자바

목록 보기
15/17

Java Collections Framework(JCF)

Collection이란??

  • Java에서 컬렉션이란 다수의 요소를 하나의 그룹으로 묶어 효율적으로 저장하고, 관리할 수 있는 기능을 제공하는 일종의 컨테이너
  • 배열은 크기가 고정되어 있는데에 반해, 컬렉션 프레임워크는 가변적인 크기를 갖는(Resizable)의 특징을 가짐
  • 데이터 삽입, 탐색, 정렬 등 편리한 API를 다수 제공
  • JCF는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공
  • 위 이미지는 Java 컬렉션 프레임워크의 상속 구조
  • Collection 인터페이스는 크게 List, Set, Queue로 크게 3가지 상위 인터페이스로 분류
  • Map의 경우 Collection 인터페이스를 상속받고 있지 않지만 Collection으로 분류

Collection 프레임워크의 이점

  • List, Queue, Set, Map 등의 인터페이스를 제공하고, 이를 구현하는 클래스를 제공하여 일관된 API를 사용할 수 있음
  • 가변적인 저장 공간을 제공
  • 자료구조, 알고리즘을 구현하기 위한 코드를 직접 장성할 필요 없이, 이미 구현된 컬렉션 클래스를 목적에 맞게 선택하여 사용
  • 제공되는 API는 검증되고 최적화 되어있음

Collection 프레임워크의 구성요소

  • 인터페이스(Interfaces)
    • 각 컬렉션을 나타내는 추상 데이터에 대한 인터페이스(List, Set, Map)
    • 클래스는 이 인터페이스를 구현하는 방식으로 작성되었기 때문에 상세 동작은 달라도 일관된 조작법으로 사용할 수 있다
  • 클래스(Classes)
    • 컬렉션 별 인터페이스의 구현
    • List 컬렉션이라도 목적에 따라 ArrayList, LinkedList 등으로 상세 구현이 가능
  • 알고리즘
    • 컬렉션이 제공하는 연산, 검색, 정렬, 셔플등에 대한 메소드

Collection Framework의 종류

컬렉션 프레임워크는 아래와 같이 크게 4개로 분류할 수 있음

  • 리스트(List) : 인덱스 순서로 요소를 저장. 중복된 데이터 저장 가능
  • 큐(Queue) : 데이터가 저장된 순서대로 출력되는 선입선출의 선형 자료구조
  • 집합(Set) : 순서가 없으며, 데이터 중복 저장 x
  • 맵(Map) : Key-Value의 쌍으로 데이터를 저장, 순서가 없으며, key 중복 X

Collection Freamwork 계층

검정색은 인터페이스, 파랑색은 클래스, 실선 화살표는 상속, 점선 화살표는 구현을 의미

  • 컬렉션 프레임워크는 위와 같은 구조로 이루어짐
    • 대표적으로 List, Queue, Set, Map 인터페이스로 구성
    • 세부적으로는 여러 클래스가 해당 인터페이스를 구현하거나, 다른 인터페이스가 상속받는 구조
  • Queue는 인터페이스는 존재하지만, 구현된 클래스는 존재하지 않음
  • LinkedList가 List 인터페이스와 Deque 인터페이스 Queue 인터페이스를 다 구현
    • 통상적으로 Queue를 구현하려면 LinkedList를 사용하여 구현
  • Map 인터페이스는 구조상 특징이 달라 List, Queue, Set과 달리 Collection을 상속받지 않는 모습

Collection 인터페이스의 특징

profile
목적지가 있는 개발자 백재원입니다.

0개의 댓글