목적지가 있는 개발자 백재원입니다.
로그인
목적지가 있는 개발자 백재원입니다.
로그인
Collection
목적지가 있는 개발자 백재원입니다.
·
2023년 5월 20일
팔로우
0
Collection
Java
자바
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 인터페이스의 특징
목적지가 있는 개발자 백재원입니다.
목적지가 있는 개발자 백재원입니다.
팔로우
이전 포스트
ArrayList
다음 포스트
Array(배열)와 List(리스트)의 차이(+ArrayList란..??)
0개의 댓글
댓글 작성