컬렉션 프레임워크

Collection Framework

Java 컬렉션 프레임워크는 자료를 저장하고 관리하는 데 사용되는 자료구조와 알고리즘의 모음입니다.

컬렉션 프레임워크는 데이터를 효율적으로 다룰 수 있는 다양한 클래스와 인터페이스를 제공합니다.

주요 인터페이스로는 List, Set, Map이 있습니다.

List 인터페이스

List 인터페이스는 순서가 있는 데이터를 저장하고, 중복을 허용합니다.

기본적으로 리스트 안 요소를 다루기 위해 add, get, set, remove 등의 메소드를 지원합니다.

ArrayList

ArrayList는 List 인터페이스를 구현한 클래스 중 하나로, 크기를 동적으로 조정할 수 있는 배열 기반의 자료구조입니다. 데이터를 추가하고 삭제할 때, 데이터의 인덱스를 활용하는 것이 주요 특징입니다.

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        
        // 요소 추가
        arrayList.add("Apple");
        arrayList.add("Banana");
        arrayList.add("Cherry");
        
        System.out.println(arrayList); // [Apple, Banana, Cherry]
        
        // 요소 가져오기
        String first = arrayList.get(0);
        System.out.println(first); // Apple

        // 요소 수정하기
        arrayList.set(0, "Green Apple");
        System.out.println(arrayList.get(0)); // Green Apple
        
        // 요소 삭제
        arrayList.remove("Banana");
        
        System.out.println(arrayList); // [Apple, Cherry]
    }
}

ArrayList는 데이터를 순서대로 저장하고, 인덱스를 통해 원하는 위치의 데이터에 접근할 수 있어 데이터를 효과적으로 다룰 수 있습니다.

LinkedList

ArrayList와는 달리 LinkedList는 이중 연결 리스트로 구현되어 있어 데이터의 추가 및 삭제가 더 빠르게 이루어집니다.

import java.util.LinkedList;

public class LinkedListExample {
    public static void main(String[] args) {
        LinkedList<String> linkedList = new LinkedList<>();
        
        // 요소 추가
        linkedList.add("Apple");
        linkedList.add("Banana");
        linkedList.add("Cherry");
        
        System.out.println(linkedList); // [Apple, Banana, Cherry]
        
        // 요소 가져오기
        String first = arrayList.get(0);
        System.out.println(first); // Apple

        // 요소 수정하기
        arrayList.set(0, "Green Apple");
        System.out.println(arrayList.get(0)); // Green Apple
        
        // 요소 삭제
        linkedList.remove("Banana");
        
        System.out.println(linkedList); // [Apple, Cherry]
    }
}

LinkedList는 데이터를 중간에 삽입하거나 삭제하는 작업이 ArrayList에 비해 빠르며, 이러한 특성을 활용하여 데이터를 효과적으로 다룰 수 있습니다


Set 인터페이스

Set 인터페이스는 중복을 허용하지 않는 데이터를 저장합니다.

요소를 관리하기 위해 add, remove, contains 등의 메소드를 지원합니다.

HashSet

HashSet은 Set을 구현한 클래스 중 하나로, 중복된 값을 허용하지 않고, 순서를 보장하지 않습니다.

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(3);
        
        numbers.remove(2);

        for (int number : numbers) {
            System.out.println(number); // [1, 3]
        }
    }
}


Map 인터페이스

Map 인터페이스는 키-값 쌍을 저장합니다.

키값쌍을 관리하기 위해 기본적으로 get, put, remove, containsKey 등의 메소드를 지원합니다.

HashMap

HashMap은 Map을 구현한 클래스 중 하나로, 키를 통해 값을 검색할 수 있습니다.

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> scores = new HashMap<>();
        scores.put("Alice", 95);
        scores.put("Bob", 88);
        scores.put("Charlie", 73);

        int aliceScore = scores.get("Alice");
        System.out.println("Alice's Score: " + aliceScore);
    }
}

Last updated