[Java] Collection이란?

Sai·2023년 3월 24일
0
post-thumbnail

Collection Framework

  • Collection은 객체의 모음, 그룹입니다.
  • 자바에서 모든 Collection 클래스와 인터페이스를 포함 하는
    "Collection Framework"라는 개념이 JDK 1.2에서 정의가 되었습니다.
  • Collection 인터페이스(java.util.Collection)
    Map 인터페이스(java.util.Map)
    자바 Collection 클래스의 주요 인터페이스입니다

Collection을 사용하는 이유

  • 일괄된 API : Collection의 일관된 API를 사용하여
    Collection 밑에 있는 모든 클래스(ArrayList, Vector, LinkedList 등)를 Collection에서 상속받아 통일된 메서드를 사용하게 됩니다.
  • 프로그래밍 노력 감소 : 객체 지향 프로그래밍의 추상화의 기본 개념이 성공적으로 구현되어있습니다
  • 프로그램 속도 및 품질 향상 : 유용한 데이터 구조 및 알고리즘은 성능을 향상시킬 수 있습니다 Collection을 사용하여 최상의 구현을 생각할 필요없이 간단하게 Collection API를 사용하여 구현을 하면 됩니다.

Collection의 종류

  • Collection 인터페이스 (java.util.Collection)
    • List 인터페이스
    • Set 인터페이스
    • Queue 인터페이스
  • Map 인터페이스(java.util.Map)

1) Collection 인터페이스

  • List 인터페이스

    • 정렬된 모든 객체 컬렉션을 저장할 수 있는 목록 데이터 전용입니다.

    • ArrayList

      • 동적 배열을 제공합니다.
      • 표준 배열보다 느릴 수 있지만 배열에서 많은 움직임이 필요한 프로그램에서 유용합니다.
      • 컬렉션에서 개체를 추가, 삭제하면 ArrayList의 크기가 자동으로 조정됩니다.
    • LinkedList

      • 요소가 연속된 위치에 저장되지 않고 모든 요소가 데이터 부분과 주소 부분이 있는 별도의 객체에 저장됩니다.
      • 포인터와 주소를 사용해서 데이터를 가져옵니다
      • 각 요소를 노드(Node)라고 부릅니다.
    • Vector

      • 동적 배열을 제공하고, 표준 배열보다 느리지만 많은 움직임이 필요한 프로그램에서 유용합니다.
      • ArrayList와 유사하지만 차이점은 Vector는 동기화가 되고, ArrayList는 동기화가 되지 않는다는 것이 차이점입니다.
    • Stack

      • 스택 클래스 모델 및 스택 데이터 구조를 구현할 때 주로 사용합니다.
      • 후입선출을 기본 원칙으로 합니다.
  • Queue 인터페이스

    • 이름에서 알 수 있듯이 선입 선출을 기본적으로 사용합니다.
    • 순서가 중요한 업무에서 주로 사용합니다.
    • PriorityQueue
      • 우선 순위에 따라 객체를 처리해야 할 때 사용합니다.
      • 선입선출을 기본으로 하지만 우선 순위에 따라 먼저 처리해야할 것이 있다면 우선 순위 힙을 기반으로 처리합니다.
  • Deque 인터페이스

    • 양방향 큐라고도 불리고 양쪽 끝에서 요소를 추가하고 제거할 수 있는 구조입니다.
    • 큐 데이터 구조의 변형입니다
    • ArrayDeque
      • 크기가 조정되는 배열이고 양쪽 끝에서 요소를 추가하고 제거하는 구조입니다.
  • Set 인터페이스

    • 중복 값을 저장할 수 없는 정렬되지 않은 데이터 모음입니다.
    • 중복을 방지하고 고유한 데이터만 저장해야 하는 경우 사용됩니다.
    • HashSet
      • HashSet에 입력되는 데이터는 동일한 순서로 삽입되는 것을 보장하지 않습니다.
      • 이 클래스는 NULL 요소 삽입을 허용합니다.
    • LinkedHashSet
      • HashSet과 유사하지만 차이점은 데이터를 저장하는 순서를 유지합니다.
  • Sorted Set 인터페이스

    • 위의 Set Interface와 유사하지만 순서를 정렬하는 메서드를 제공합니다.
    • TreeSet
      • Tree를 사용하여 저장합니다.
      • 데이터의 순서는 자연적인 순서(오름차순)대로 유지가 됩니다.

2) Map 인터페이스

  • Map은 데이터를 Key - Value로 매핑을 지원하는 데이터 구조입니다.
  • 동일한 키가 여러 개가 있을 수 없어 중복 키는 지원하지 않습니다.
  • HashMap
    • HashMap은 자바의 Map 인터페이스의 기본적인 방법입니다.
    • 데이터를 Key - Value 형태로 저장을 합니다.
    • HashMap의 데이터에 접근하려면 Key를 알고 있어야 접근이 가능합니다.
profile
IT is Sai

0개의 댓글