본문 바로가기

IT 개발/JAVA

Java Collection Framework 간단히 이해하기: List, Set, Map 인터페이스 및 구현 클래스 활용법

Java Collection Framework는 List, Set, Map 등의 인터페이스와 이를 구현하는 클래스들로 구성되어 있으며, 자료의 저장, 검색, 삭제 등을 손쉽게 할 수 있게 돕는 프레임워크입니다. 이 글에서는 Java Collection Framework에 대한 개요와 인터페이스와 구현 클래스의 사용법을 예시와 함께 살펴보겠습니다.

 

1. Java Collection Framework 개요

Java Collection Framework는 데이터 구조를 쉽게 구현할 수 있는 표준 인터페이스 및 클래스를 제공합니다. 이를 사용하면 프로그래머는 복잡한 데이터 구조를 직접 구현하는 대신, 제공된 인터페이스와 구현 클래스를 사용하여 원하는 기능을 적절히 활용할 수 있습니다.

 

 

2. List 인터페이스와 구현 클래스

List 인터페이스는 순서가 유지되며 중복 요소를 허용하는 컬렉션입니다. 주로 ArrayList와 LinkedList 두 가지 구현 클래스가 사용됩니다.

import java.util.ArrayList;
import java.util.List;

public class App {
  public static void main(String[] args) {
    List<String> list = new ArrayList<>();

    // 항목 추가
    list.add("Apple");
    list.add("Banana");
    list.add("Orange");

    // 항목 삭제
    list.remove(1); // 인덱스 1 항목 삭제 ("Banana" 삭제)

    // 항목 수정
    list.set(0, "Grape");

    // 항목 검색 및 출력
    for (String item : list) {
      System.out.println(item);
    }
  }
}

 

 

3. Set 인터페이스와 구현 클래스

Set 인터페이스는 순서를 유지하지 않으며 중복 요소를 허용하지 않는 컬렉션입니다. 주로 HashSet, LinkedHashSet, TreeSet 등의 구현 클래스가 사용됩니다.

import java.util.HashSet;
import java.util.Set;

public class App {
  public static void main(String[] args) {
    Set<String> set = new HashSet<>();

    // 항목 추가
    set.add("Apple");
    set.add("Banana");
    set.add("Orange");
    set.add("Apple"); // 중복 요소이므로 추가되지 않음

    // 항목 삭제
    set.remove("Banana");

    // 항목 검색 및 출력
    for (String item : set) {
      System.out.println(item);
    }
  }
}

 

 

4. Map 인터페이스와 구현 클래스

Map 인터페이스는 키-값 쌍으로 저장되는 컬렉션으로, 키는 고유해야 하며 순서가 보장되지 않습니다. 주로 HashMap, LinkedHashMap, TreeMap 등의 구현 클래스가 사용됩니다.

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

public class App {
  public static void main(String[] args) {
    Map<String, String> map = new HashMap<>();

    // 항목 추가
    map.put("Apple", "Green");
    map.put("Banana", "Yellow");
    map.put("Orange", "Orange");

    // 항목 삭제
    map.remove("Banana");

    // 항목 수정
    map.put("Apple", "Red");

    // 항목 검색 및 출력
    for (Map.Entry<String, String> entry : map.entrySet()) {
      System.out.println(entry.getKey() + ": " + entry.getValue());
    }
  }
}

 

5. List, Set, Map의 주요특징, 차이점

List, Set, Map 인터페이스는 Java Collection Framework의 세 가지 주요 인터페이스입니다. 각각의 특징과 차이점은 다음과 같습니다.

 

5.1. List

- 순서가 있는 컬렉션

- 중복 요소 허용 가능

- 인덱스(index)를 사용하여 요소에 접근 가능

- 주요 구현 클래스: ArrayList, LinkedList, Vector

 

5.2. Set

- 순서가 없는 컬렉션

- 중복 요소 불가능

- 요소에 대한 체크 기능 제공 (contains)

- 주요 구현 클래스: HashSet, LinkedHashSet, TreeSet

 

5.3. Map

- 순서가 없는 Key-Value 쌍의 컬렉션

- Key는 중복 불가능, Value는 중복 허용 가능

- Key를 사용하여 Value에 접근 가능

- 주요 구현 클래스: HashMap, LinkedHashMap, TreeMap

 

즉, List는 순서가 있고 중복 가능하며 인덱스로 요소에 접근할 수 있고, Set은 순서 없이 중복이 불가능하며 요소에 대한 체크 기능을 제공하고, Map은 순서 없는 Key-Value 쌍의 컬렉션으로 Key를 사용하여 Value에 접근이 가능합니다. 이러한 차이점을 고려하여 컬렉션을 선택하면, 데이터 구조를 효율적으로 사용할 수 있습니다.

 

 

Java Collection Framework를 이해하고 활용하면 데이터를 효율적으로 다루고 신속하게 처리할 수 있습니다. List, Set, Map 인터페이스와 이를 구현하는 클래스들을 알아보며, 해당 예시를 토대로 다양한 프로그램에 응용해보기를 권장합니다.