java - 자바 컬렉션 프레임워크

잠자는 고양이·2025년 5월 13일
0

Java

목록 보기
53/73

📚 자바 컬렉션 프레임워크 (Java Collection Framework)

📌 컬렉션 (Collection)

  • 데이터나 객체를 저장하는 구조를 의미함
  • List, Set, Map 등의 다양한 형태가 존재함

📌 프레임워크 (Framework)

  • 구조, 틀 이라는 의미를 가지고 있음
  • 특정 문제를 해결하기 위한 기본적인 설계나 뼈대를 제공하는 시스템

📌 두 용어를 합쳐서 생각해본다면?

자바 언어 기반으로 데이터 구조와 관련된 다양한 작업을 쉽게 처리할 수 있는 기본적인 틀을 제공

💡 다른 말로 표현해보면

  • 자료 구조를 효율적으로 저장하고 관리하기 위한 표준화된 인터페이스와 클래스의 모음

📋 자료 구조로 어떤 작업을 하는가?

  • 데이터를 저장, 검색, 수정, 삭제 등의 작업을 의미함

🎯 자바 컬렉션 프레임워크(JCF)를 사용하는 목적

  • 데이터를 효율적으로 관리하기 위해 표준화된 방법을 제공

  • 일관된 API 제공
    List, Set, Map 등의 다양한 자료 구조에 대해 동일한 메서드를 사용 가능
    → 예: add(), remove()

  • 인터페이스 기반 설계로 유연성을 제공하고, 객체지향적으로 설계되어 있음
    List, Set, Map 같은 인터페이스를 통해 다양한 구현체로 확장 가능


🧱 자바 컬렉션 프레임워크의 종류

  • 컬렉션 프레임워크는 Collection 인터페이스와 Map 인터페이스로 나뉨

▶ Collection

  • List, Set 등의 인터페이스를 포함

▶ Map

  • 두 개의 데이터를 쌍(pair)으로 묶어 다루는 인터페이스
  • Collection과는 성격이 달라 분리되어 있음

List, Set, Map 중 하나의 인터페이스를 상속받아 구현되어 있는 컬렉션 클래스가 많음


🔁 Iterable 인터페이스

  • 컬렉션 인터페이스 중 가장 최상단에 위치하는 인터페이스
  • 컬렉션의 요소를 하나씩 순회(iterate)할 수 있는 기능을 제공

✅ 주요 메서드

  • iterator()
    → 컬렉션의 첫 번째 요소부터 끝까지 하나씩 순차적으로 탐색할 수 있는 Iterator 객체를 반환

  • forEach()
    → 함수형 프로그래밍 전용 loop 메서드


📦 Collection 인터페이스

  • List, Queue, Set와 같은 컬렉션 타입의 실질적인 최상위 인터페이스
  • Iterable을 확장하여 iterator가 가능한 컬렉션을 제공

✅ 주요 메서드

메서드설명
add(E e)요소 추가
remove(Object o)요소 삭제
size()컬렉션의 크기 반환
isEmpty()비어 있는지 여부 확인
contains(Object o)특정 요소 포함 여부 확인
clear()모든 요소 삭제
iterator()Iterator 객체 반환

🔁 Iterable 과 Collection 의 관계

  • Collection 인터페이스는 Iterable 인터페이스를 확장(extends)
    → 모든 CollectionIterable을 자동 구현
    → 따라서 for-each문 사용 가능

  • Iterable: 컬렉션을 반복(iteration)할 수 있도록 하는 기능 제공

  • Collection: 요소의 추가, 삭제, 포함 여부 확인 등 동작 정의


📋 List 인터페이스

  • 순서가 있는 데이터 집합을 다룰 때 사용
  • Collection의 하위 인터페이스
  • 중복 허용, 삽입 순서 보장
  • 인덱스를 사용한 접근 가능
  • 데이터 양에 따라 자료형의 크기가 동적으로 변경

✅ 주요 메서드

메서드설명
add(E e)요소 추가
add(int index, E element)특정 인덱스에 요소 삽입
remove(int index)특정 인덱스 요소 삭제
get(int index)특정 인덱스 요소 반환
set(int index, E element)특정 인덱스 요소 수정
indexOf(Object o)특정 요소의 인덱스 반환
subList(int fromIndex, int toIndex)부분 리스트 반환

🧩 Set 인터페이스

  • 순서가 중요하지 않은 요소 다룰 때 사용
  • Collection의 하위 인터페이스
  • 중복 허용하지 않음, 각 요소의 고유성 중시

✅ 주요 메서드

메서드설명
add(E e)요소 추가 (중복 시 추가 안 됨)
remove(Object o)요소 제거
contains(Object o)요소 존재 여부 확인
size()요소 수 반환
isEmpty()비어 있는지 확인
clear()모든 요소 제거

🗺️ Map 인터페이스

  • 키(Key)와 값(Value)의 쌍으로 데이터 처리
  • Collection의 하위 인터페이스는 아님
  • 동일한 키는 하나만 존재, 값은 중복 가능
  • 키의 순서 유무는 구현체에 따라 다름

✅ 주요 메서드

메서드설명
put(K key, V value)값 추가 (동일 키 존재 시 덮어씀)
get(Object key)키에 해당하는 값 반환
containsKey(Object key)키 존재 여부 확인
remove(Object key)키 삭제
keySet()모든 키를 Set 형태로 반환
values()모든 값을 Collection 형태로 반환
entrySet()키-값 쌍을 Set 형태로 반환

profile
개발자가 되고 싶은 잠자는고양이

0개의 댓글