TaBo
개척하는 기록
TaBo
전체 방문자
오늘
어제
  • 기록들 (63)
    • Programming (35)
      • Java (19)
      • Servlet&Jsp (4)
      • Spring (4)
      • SpringBoot (1)
      • 기타 (2)
      • BOJ (5)
    • CS (16)
      • 자료구조 (4)
      • 알고리즘 (4)
      • 운영체제 (5)
      • 기본 용어 (3)
    • Project (4)
      • [Spring] 게시판 (4)
    • 나에 대한 기록 (8)

블로그 메뉴

  • Github

인기 글

태그

  • OS
  • 백준
  • c++
  • 알고리즘
  • 운영체제
  • 자바
  • 스프링 게시판
  • java
  • Spring 게시판
  • spring

최근 글

티스토리

hELLO · Designed By 정상우.
TaBo

개척하는 기록

[Java] 컬렉션 프레임워크
Programming/Java

[Java] 컬렉션 프레임워크

2022. 10. 3. 23:51

※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요!

 

[ 1 ] 컬렉션 프레임워크란?

컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다.

즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현한 것을 의미한다. 

자바 컬렉션 프레임워크는 Interface로 구현된다.

 


 

[ 2 ] 구조

 

출처 - TCP School

컬렉션 프레임워크에는 Collection 인터페이스를 상속받는 List, Set, Queue 가 있고, Collection 을 상속받지 않는 Map 이 있다. 둘의 큰 차이는 Iterable 인터페이스를 상속받냐, 상속받지 않냐의 차이인데 Iterable 인터페이스를 상속받은 Collection 인터페이스는 Iterator와 for-each를 제공한다. 즉, 컬렉션 프레임워크 객체의 데이터를 순회하는 것이 쉽다! (물론 Map 의 데이터를 순회하는 여러가지 방법 또한 존재한다)

 


(1) List 인터페이스

 List 인터페이스는 선형 자료구조로서 순서가 있는 데이터를 저장하기 위해 만들어진 인터페이스이다. 데이터의 중복을 허용하며, 일반적인 배열(int[] arr = new int[10])과 달리 List를 통해 구현된 클래스들은 동적 크기를 가져 데이터 저장에 용이하다.

 

 - List 인터페이스를 구현하는 클래스: ArrayList, LinkedList, Vector, Stack 

 


(2) Set 인터페이스

 Set 인터페이스는 수학에서의 '집합'과 같으며, '데이터를 중복해서 저장할 수 없음', '입력 순서대로 저장 순서를 보장하지 않음'의 특징이 있다. 단, Set을 구현하는 LinkedHashSet은 저장 순서를 보장한다.

 

 - Set 인터페이스를 구현하는 클래스: HashSet, LinkedHashSet, TreeSet

 


(3) Queue 인터페이스

 Queue 인터페이스는 대표적인 자료구조 중 하나로 First-in First-out(FIFO)의 특징이 있다. 즉, 먼저 들어온 데이터가 먼저 출력되는 구조이다. Queue를 상속받는 Deque 인터페이스도 있는데, Deque은 Double-ended Queue로서 Queue와 달리 양쪽에서 데이터의 삽입삭제가 가능한 자료구조이다. 

 

 - Queue, Deque 인터페이스를 구현하는 클래스: LinkedList, ArrayDeque, PriorityQueue

 


(4) Map 인터페이스

  Map 인터페이스는 위 세개의 인터페이스와 달리 Collection을 상속받지 않는다. Map은 key와 value의 쌍이 저장되는 자료구조로서 데이터 저장 시 순서는 유지되지 않는다. key는 중복될 수 없는 반면, value는 중복을 허용한다. 

 

 - Map 인터페이스를 구현하는 클래스: HashMap, Hashtable, TreeMap .. 

 

 

 


[ 참고자료 ]

https://catsbi.oopy.io/8f0f5192-3a06-405e-8076-dbc5ff9f2dfb  

 

컬렉션 프레임워크

목차

catsbi.oopy.io

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

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

https://st-lab.tistory.com/142

 

자바 [JAVA] - 자바 컬렉션 프레임워크 (Java Collections Framework)

아마 프로그래밍을 전공한다면 '자료구조'라는 단어를 들어본 적이 있을 것이다. 자료구조는 Data Structure라고 하는데, 직역하면 데이터 구조. 좀 더 자세하게 설명하자면 '일련의 일정 타입들의

st-lab.tistory.com

 

저작자표시 비영리 변경금지 (새창열림)

'Programming > Java' 카테고리의 다른 글

[Java] JVM, Java 환경변수 설정(Mac, 기본 zsh 쉘)  (5) 2023.01.18
[Java] List Interface  (0) 2022.10.10
[Java] length, length(), size() 차이  (1) 2022.10.02
[Java] Enum 클래스  (1) 2022.08.29
[Java] Object 클래스  (0) 2022.08.25
    'Programming/Java' 카테고리의 다른 글
    • [Java] JVM, Java 환경변수 설정(Mac, 기본 zsh 쉘)
    • [Java] List Interface
    • [Java] length, length(), size() 차이
    • [Java] Enum 클래스
    TaBo
    TaBo

    티스토리툴바