JAVA 80%

Collection framework

lshjju 2025. 11. 5. 20:49

수많은 데이터를 효율적으로 모아서 관리하는 '데이터 보관함' 세트인 **컬렉션 프레임워크(Collection Framework)**.

자바에서는 용도에 따라 크게 List, Set, Map이라는 3가지 형태의 보관함을 제공합니다.



📘 자바 컬렉션 프레임워크: "데이터 관리 종합 세트"

컬렉션 프레임워크는 다수의 데이터를 저장하는 클래스들을 표준화한 설계입니다. 데이터를 어떻게 쌓고, 찾고, 지울지에 대한 고민을 자바가 미리 해결해 둔 도구 상자라고 생각하면 쉽습니다.


📦 3대 핵심 컬렉션

1. List Collection (줄 서기 보관함)

  • 특징: 데이터를 일렬로 늘어선 순서대로 저장합니다.
  • 중복: 똑같은 데이터를 여러 번 넣을 수 있습니다 (중복 허용).
  • 비유: 편의점의 진열대나 대기 줄과 같습니다. 첫 번째 들어온 사람, 두 번째 들어온 사람이 명확합니다.
  • 주요 클래스: ArrayList, LinkedList, Vector
Java
 
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        
        list.add("사과");
        list.add("바나나");
        list.add("사과"); // 중복 저장 가능!
        
        System.out.println("List 목록: " + list);
        System.out.println("첫 번째 아이템: " + list.get(0)); // 인덱스로 찾기
    }
}

2. Set Collection (집합 보관함)

  • 특징: 순서를 유지하지 않으며, 중복을 절대 허용하지 않습니다.
  • 중복: 이미 있는 데이터를 또 넣으려고 하면 무시됩니다.
  • 비유: 주머니 속에 구슬을 넣어둔 것과 같습니다. 꺼낼 때 어떤 순서로 나올지 알 수 없고, 똑같은 구슬은 두 개 있을 수 없습니다.
  • 주요 클래스: HashSet, TreeSet
Java
 
import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        
        set.add("축구");
        set.add("농구");
        set.add("축구"); // 중복이라 저장 안 됨!
        
        System.out.println("Set 목록: " + set); // 입력 순서와 다를 수 있음
        System.out.println("데이터 개수: " + set.size()); // 2개만 출력됨
    }
}

3. Map Collection (사전식 보관함)

  • 특징: **키(Key)**와 **값(Value)**이 한 쌍으로 저장됩니다.
  • 중복: 키는 중복될 수 없지만, 값은 중복될 수 있습니다.
  • 비유: 영어 사전이나 아파트 호수별 이름표와 같습니다. 'Apple'이라는 키를 찾으면 '사과'라는 값을 얻는 방식입니다.
  • 주요 클래스: HashMap, Hashtable, TreeMap, Properties
Java
 
import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        
        map.put("myId", "1234");
        map.put("admin", "admin77");
        map.put("myId", "5678"); // 키가 중복되면 새로운 값으로 덮어씀!
        
        System.out.println("admin의 비밀번호: " + map.get("admin"));
        System.out.println("전체 맵: " + map);
    }
}

👨‍🏫 실무 선택 가이드

  • 순서가 중요하고 데이터를 막 집어넣고 싶을 때: List (가장 많이 씁니다!)
  • 중복을 제거해야 하거나 존재 여부만 중요할 때: Set
  • 이름표를 붙여서 빠르게 데이터를 찾아야 할 때: Map

오늘의 요약

  • List: 순서 O, 중복 O (줄 세우기)
  • Set: 순서 X, 중복 X (주머니 집합)
  • Map: 키와 값의 쌍 (이름표 달기)
  • 이들은 모두 java.util 패키지에 들어있습니다.

자바 프로그래밍에서 데이터를 다루는 가장 중요한 기초 체력을 기르셨습니다!


'JAVA 80%' 카테고리의 다른 글

I/O Stream  (0) 2025.11.06
LIFO/FIFO collection - Stack - Queue  (0) 2025.11.06
Thread control  (0) 2025.11.05
java.util package  (0) 2025.11.05
java.lang package  (0) 2025.11.05