본문 바로가기
Java

[Java] 컬렉션(Collection) 기초 개념과 List, Set, Map 차이

by teamnova 2025. 3. 19.
728x90

 

안녕하세요 오늘은 자바의 자료구조 프레임워크인 컬렉션(Collection)의 개념과
List, Set, Map 세 가지 인터페이스의 차이를 알아보겠습니다. 

 

 

1. 컬렉션(Collection) 이란? 

컬렉션(Collection)은 데이터를 효율적으로 저장하고 관리하는 자료구조를 제공하는 자바의 프레임워크입니다. 쉽게 말해, 여러 개의 데이터를 한 번에 다룰 수 있도록 도와주는 도구입니다.

 

컬렉션을 사용하면 데이터를 효율적으로 추가, 삭제, 검색할 수 있고 자료구조를 직접 구현하지 않고 편리하게 사용 가능합니다. 또한 코드 재사용성이 증가하고 유지보수가 쉬워진다는 장점이 있습니다. 

 

 

2. 컬렉션 프레임워크의 주요 인터페이스

1) List - 순서 유지, 중복 허용 (ArrayList, LinkedList) 

2) Set - 순서 없음, 중복 불가 (HashSet, TreeSet) 

3) Map - 키(key) - 값(value) 구조, 키 중복 불가 (HashMap, TreeMap)

 

 

1) List 

데이터의 순서가 유지되며 중복된 값도 저장할 수 있는 자료구조입니다.

저장된 데이터의 순서가 보장되며 같은 값을 여러 번 저장할 수 있습니다. 데이터에 부여된 index 값을 통해 요소에 접근할 수 있습니다 

 

ArrayList 사용예제 

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); // [사과, 바나나, 사과]
    }
}

 

 

출력결과

List: [사과, 바나나, 사과]

 

 

 

 

2) Set 

중복된 데이터를 허용하지 않는 컬렉션입니다. 데이터의 순서는 보장되지만, 동일한 값을 한번만 저장할 수 있습니다 

 

HashSet 사용예제 

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);
    }
}

 

출력결과 

Set: [바나나, 사과]  // 중복된 "사과"가 하나만 저장됨

 

 

 

 

3) Map 

키-값 쌍으로 데이터를 저장하는 컬렉션입니다. 

키(key)값은 중복될 수 없으나 같은 값(value)은 중복 가능합니다. 키값을 통해 값을 빠르게 찾을 수 있습니다. 

 

HashMap 사용예제 

import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "사과");
        map.put(2, "바나나");
        map.put(1, "포도"); // 같은 키(1) 값 덮어쓰기
        
        System.out.println("Map: " + map);
        System.out.println("Key 1의 값: " + map.get(1));
    }
}

 

출력예제 

Map: {1=포도, 2=바나나}
Key 1의 값: 포도

 

이렇게 자바의 컬렉션 프레임워크를 사용하면 데이터를 더욱 효율적으로 저장하고 관리할 수 있습니다. 

List, Set, Map 의 차이를 이해하고 상황에 맞는 컬렉션을 선택하는 것이 중요합니다. 

 

감사합니다