코딩 테스트 필수 문법 (2)

Kang Junhyeok·2024년 11월 14일

codingTest

목록 보기
2/2

컬렉션 프레임 워크(Collection Framework)


여러 개의 값을 저장하고 그 값을 쉽고, 효율적으로 처리해주는 표준화 클래스의 집합 입니다. 쉽게 말하자면 Data structure인 리스트, 큐, 스택, 해시맵 등을 직접 구현하지 않고 쉽게 사용할 수 있습니다. 대표적으로 ArrayList , Stack, Queue, ArrayDeque, HashMap 등이 있습니다.

컬렉션 프레임워크의 주요 클래스

  • ArrayList
    ArrayList는 가변 크기를 가지며, 요소를 인덱스에 따라 저장하는 리스트입니다.
import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        // Create
        ArrayList<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");

        // Read
        System.out.println(list.get(0)); // Apple

        // Update
        list.set(1, "Cherry");
        System.out.println(list.get(1)); // Cherry

        // Delete
        list.remove(0);
        System.out.println(list); // [Cherry]
    }
}
  • Stack
    Stack은 LIFO(Last In First Out) 구조로, 요소를 쌓아 올리는 형식입니다.
import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        // Create
        Stack<String> stack = new Stack<>();
        stack.push("A");
        stack.push("B");

        // Read
        System.out.println(stack.peek()); // B

        // Update (Stack에서는 update가 아닌 pop 후 push로 처리)
        stack.pop(); // 제거
        stack.push("C"); // 새 요소 추가

        // Delete
        stack.pop(); // C 제거
        System.out.println(stack); // [A]
    }
}
  • Queue
    Queue는 FIFO(First In First Out) 구조로, 먼저 들어온 요소가 먼저 나갑니다.
import java.util.LinkedList;
import java.util.Queue;

public class QueueExample {
    public static void main(String[] args) {
        // Create
        Queue<String> queue = new LinkedList<>();
        queue.add("1");
        queue.add("2");

        // Read
        System.out.println(queue.peek()); // 1

        // Update (Queue는 직접적으로 업데이트 불가, 제거 후 추가)
        queue.poll(); // 1 제거
        queue.add("3"); // 새 요소 추가

        // Delete
        queue.poll(); // 2 제거
        System.out.println(queue); // [3]
    }
}
  • ArrayDeque
    ArrayDeque는 덱(Double Ended Queue)으로, 양쪽 끝에서 요소를 추가하거나 제거할 수 있습니다.
import java.util.ArrayDeque;

public class ArrayDequeExample {
    public static void main(String[] args) {
        // Create
        ArrayDeque<String> deque = new ArrayDeque<>();
        deque.add("X");
        deque.add("Y");

        // Read
        System.out.println(deque.peekFirst()); // X

        // Update (Update가 아닌 제거 후 추가)
        deque.pollFirst(); // X 제거
        deque.addFirst("Z"); // 새 요소 추가

        // Delete
        deque.pollLast(); // Y 제거
        System.out.println(deque); // [Z]
    }
}
  • HashMap
    HashMap은 키-값 쌍으로 데이터를 저장하며, 키를 통해 값을 빠르게 조회할 수 있습니다.
import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        // Create
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Apple", 1);
        map.put("Banana", 2);

        // Read
        System.out.println(map.get("Apple")); // 1

        // Update
        map.put("Apple", 3); // 값 업데이트
        System.out.println(map.get("Apple")); // 3

        // Delete
        map.remove("Banana");
        System.out.println(map); // {Apple=3}
    }
}

0개의 댓글