본문 바로가기
기초 및 언어/▶ Java&JSP

30. 컬렉션(Collection)

by 류딩이 2025. 8. 24.

📌 Java 컬렉션 

1. 배열(Array) vs 컬렉션(Collection)

 

  • 배열(Array)
    • 메모리가 연속적으로 할당됨
    • 크기가 고정 → 한 번 정하면 변경 불가
  • 컬렉션(Collection)
    • 동적으로 크기 조절 가능
    • 객체만 저장 가능 (기본형은 Wrapper 클래스 사용)
    • 인터페이스 기반으로 설계되어 다양한 구현체 제공

2. 컬렉션의 종류

  • (1) List
    • 순서 O, 중복 O
    • 대표 클래스 : ArrayList, LinkedList, Vector
    • 예: 회원 목록, 게시판 댓글
    (2) Set
    • 순서 X, 중복 X
    • 대표 클래스 : HashSet, TreeSet
    • 예: 중복 없는 데이터 관리 (ID, 이메일, 집합)
    (3) Map
    • Key-Value 쌍으로 저장
    • Key는 중복 X, Value는 중복 O
    • 대표 클래스 : HashMap, TreeMap, Hashtable
    • 예: 사전(Dictionary), 회원 정보(아이디-비밀번호)

 

 

3. 인터페이스 구조 (간단도식)

Collection (인터페이스)
 ├── List (순서O, 중복O)
 │    ├── ArrayList
 │    ├── LinkedList
 │    └── Vector
 │
 └── Set (순서X, 중복X)
      ├── HashSet
      └── TreeSet

Map (인터페이스, Collection과 별도)
 ├── HashMap
 ├── TreeMap
 └── Hashtable

 

import java.util.*;

public class CollectionBasic {
    public static void main(String[] args) {
        // List : 순서 O, 중복 O
        List<String> list = new ArrayList<>();
        list.add("펭구");
        list.add("모코코");
        list.add("펭구"); // 중복 허용
        System.out.println("List : " + list);

        // Set : 순서 X, 중복 X
        Set<String> set = new HashSet<>();
        set.add("펭구");
        set.add("모코코");
        set.add("펭구"); // 중복 제거됨
        System.out.println("Set : " + set);

        // Map : Key-Value 구조
        Map<String, String> map = new HashMap<>();
        map.put("모코코", "1234");
        map.put("펭구", "5678");
        map.put("모코코", "9999"); // key 중복 → value 덮어씀
        System.out.println("Map : " + map);
    }
}
List : [펭구, 모코코, 펭구]
Set : [모코코, 펭구]  // 순서 보장 안 됨
Map : {모코코=9999, 펭구=5678}

 

 

정리

 

  • Collection : 여러 데이터를 묶어서 관리하는 자료구조 클래스 모음
  • List : 순서 있음, 중복 허용 → 데이터 나열할 때
  • Set : 순서 없음, 중복 불가 → 집합/고유 데이터 관리할 때
  • Map : 키-값 쌍 → 검색/매핑 구조에 강력

 

 

'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글

32. Vector와 Enumeration  (1) 2025.08.26
31. ArrayList  (5) 2025.08.24
29. Generic  (1) 2025.08.22
28. Calendar, Date, SimpleDataFormat  (0) 2025.08.22
27. 패키지 - String  (3) 2025.08.22