[자료구조] - List, Set, Map

링딩·2023년 4월 2일
0

Computer Science

목록 보기
15/49





자바 컬렉션 프레임워크의 상속 기본구조

데이터를 처리하기 위해 배열을 사용했었지만 크기가 고정되어있고 삽입 및 삭제 시간이 오래 걸린다는 불편한 점들이 많았습니다.
=> 따라서 이를 보완하기 위해 자바에서 동적 배열 개념인 컬렉션 프레임워크를 제공하였는데
=> 종류는 대표적으로 List, Map, Set이 있습니다.



List

◽ 특징

  1. 순서가 있고 중복을 허용
  2. 인덱스로 원소에 접근이 가능
  3. 크기가 가변적

◽ List의 종류와 특징

  • LinkedList
    • 양방향 포인터 구조로 데이터 삽입, 삭제가 빠름.
    • ArrayList보다 검색이 느림
  • ArrayList
    • 단반향 포인터 구조로 데이터 순차적 접근에 강점이 있다.
    • 배열을 기반으로 데이터를 저장한다.
    • 데이터 삽입, 삭제가 느리다.
    • 데이터 검색이 빠르다.


Set

◽ 특징

  1. 데이터의 집합이며 순서가 없고 중복된 데이터를 허용하지 ❌
  2. 중복되지 않은 데이터를 구할 때 유용
  3. 빠른 검색 속도를 가집니다.
  4. 인덱스가 따로 존재하지 않기 때문에 iterator를 사용

Set의 종류와 특징

  • HashSet

    • 인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 ❌.
    • NULL 값을 허용
    • TreeSet보다 삽입, 삭제가 빠르다
  • LinkedHashSet

    • 입력된 순서를 보장한다.
  • TreeSet

    • 이진 탐색 트리(Red-Black Tree)를 기반으로 한다.
    • 데이터들이 오름차순으로 정렬된다.
    • 데이터 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다.

List, Set, Map 요약

  • List : 데이터 순서대로 저장, 중복 허용
  • Map : 순서 보장 x, key 중복 허용x
    -> but Value의 중복은 허용
  • Set : 순서 보장 x, 데이터 중복을 허용 x





출처

cocoon1787 님의 글을 참고하여 작성하였습니다.

profile
초짜 백엔드 개린이

0개의 댓글