Java Algo Core 20

자료 구조 정리

초코너무조코 2025. 1. 22. 17:17
728x90

 

목차


    1. HashSet

    • 중복 요소 제거: HashSet은 중복된 요소를 허용하지 않습니다. 동일한 값은 하나만 저장됩니다.
    • 순서 없음: 저장된 순서를 보장하지 않으며, 내부적으로 요소들의 순서가 일정하지 않습니다.
    • 용도: 주로 중복 제거가 필요하거나, 순서가 중요한 문제에서 사용됩니다.

    2. TreeSet

    • 오름차순 정렬: TreeSet은 자동으로 요소들을 오름차순으로 정렬합니다. (기본적으로 Comparable을 구현한 객체나 Comparator를 사용하여 정렬)
    • 중복 요소 제거: 중복된 값은 허용하지 않습니다.
    • 용도: 순서가 중요한 경우, 예를 들어, 정렬된 데이터를 다루거나 범위 검색을 해야 할 때 사용됩니다.

    3. Stack

    • 후입선출 (LIFO): Stack은 마지막에 들어온 요소가 가장 먼저 나가는 구조입니다.
    • 순서 반전: Stack에 넣은 순서대로 빼면, 원래의 순서와 반대 순서로 요소가 반환됩니다.
    • 용도: 함수 호출 스택, Undo/Redo 기능 구현 등에서 유용하게 사용됩니다.

    4. ArrayList

    • 동적 크기 배열: ArrayList는 배열 기반의 리스트로, 크기가 동적으로 변할 수 있습니다.
    • 인덱스를 통한 빠른 접근: 배열처럼 인덱스를 통해 요소에 빠르게 접근할 수 있습니다.
    • 순서 유지: 요소가 삽입된 순서를 유지합니다.
    • 중복 허용: ArrayList는 중복된 요소를 허용합니다.
    • 용도: 자주 인덱스를 통해 데이터에 접근해야 할 때 사용되며, 크기가 가변적인 배열이 필요할 때 유용합니다.

    5. Queue

    • 선입선출 (FIFO): Queue는 먼저 들어온 요소가 먼저 나가는 구조입니다.
    • 순서 유지: 큐에 삽입된 순서를 유지하며, 요소가 처리됩니다.
    • 두 가지 주요 연산:
      • enqueue: 큐에 요소를 추가하는 연산.
      • dequeue: 큐에서 요소를 제거하는 연산.
    • 용도: 작업 대기열, BFS 알고리즘 등 순차적으로 처리해야 하는 작업에 사용됩니다.

    728x90