list, set, map 의 차이에 대해 설명해 주세요.

  • List는 순서가 있으며, 데이터(값)의 중복을 허용한다.

  • Set은 순서가 없으며, 데이터(값)의 중복을 허용하지 않는다.

  • Map(Key, Value) 구조이며, Key는 중복을 허용하지 않고, Value는 중복을 허용한다.

  1. ArrayList

    • 단방향 포인터 구조 데이터로, 순차적 접근(조회)이 빠르다.

  2. LinkedList

    • 양방향 포인터 구조로, 데이터의 삽입 및 삭제가 빠르다.

  3. HashSet

    • 입력 순서를 보장하지 않으며, 데이터의 중복을 허용하지 않는다.

  4. LinkedHashSet

    • 입력 순서를 보장하며, 데이터의 중복을 허용하지 않는다.

  5. TreeSet

    • 이진 트리를 기반으로 한 Set 컬렉션으로, 입력한 데이터의 크기가 비교 가능한 경우 오름차순으로 정렬되며, 데이터의 중복을 허용하지 않는다.

    • 입력하는 데이터가 사용자 정의 객체인 경우 Comparable을 구현하여 정렬 기준을 설정할 수 있다.

    • TreeSet에 객체를 저장하면 부모 노드와 객체와 비교해서 낮은 것은 왼쪽 자식 노드에, 높은 것은 오른쪽 자식 노드에 저장한다.

  6. HashMap

    • Key에 대한 입력 순서를 보장하지 않으며, 중복 key를 허용하지 않는다.

  7. LinkedHashMap

    • Key에 대한 입력 순서를 보장하며, 중복 key를 허용하지 않는다.

  8. TreeMap

    • 이진 트리를 기반으로 한 Map 컬렉션으로, (Key, Value)를 저장하고 입력한 key 데이터의 크기가 비교 가능한 경우 오름차순으로 정렬되며, 중복 Key를 허용하지 않는다.

    • 입력하는 데이터가 사용자 정의 객체인 경우 Comparable을 구현하여, 정렬 기준을 설정할 수 있다.

    • TreeSet과의 차이점은 키와 값이 저장된 Entry를 저장한다는 점이다.

    • TreeMap엔트리를 저장하면 키를 기준으로 자동 정렬되는데, 부모 키 값과 비교해서 낮은 것은 왼쪽, 높은 것은 오른쪽 자식 노드에 Entry 객체를 생성한다.

Last updated