공부/개발

List, Map, Set의 차이점

티오비 2017. 8. 21. 16:17
List, Map, Set의 차이점.md

List, Map, Set의 차이점

List

순서가 있는 데이터의 집합, 데이터의 중복을 허용, index 저장 및 사용하여 사용 특정 위치에 요소를 삽입, 접근

순차검색

  1. LinkedList

    • 자료의 주소값으로 서로 연결되어 있는 구조
    • stack이나 queue와 같은 자료구조로 사용할 수 있다.
  2. Vector

    • 동시접속 - 자동 동기화
  • ArrayList와 기능은 동일
  1. ArrayList

    • null element도 허용
    • vector보다 가벼움
    • 메모리 상의 주소를 정확하게 참조해서 가져온다
    • 자료의 최대 갯수에 영향을 받는다 Capacity - 수용할 수 있는 데이터의 수, size - 저장된 데이터의 수

SET

순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다.

  1. HashSet

    • hashcode에 의해서 중복여부 확인
    • 가장 빠른 접근을 보장
    • 내부적으로 hasmap을 이용 - hashset에 추가되는 항목은 hashmap의 키값으로 저장
  2. TreeSet

    • 이진탐색 트리 형태 - 레드 블랙 트리
    • 정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있음
  3. LinkedHashset

    • 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능
    • java 1.4에서 set에 순서를 부여하기 위해 등장

Map

Key, Value 쌍으로 이뤄진 데이터의 집합, 순서유지 x , key 중복 x, value 중복 o

  1. HashMap

    • key, value null 허용
  2. TreeMap

    • Comparator 정렬을 위한 인터페이스 구현, 오름차순이 기본값
    • 이진검색트리의 형태
    • 정렬된 순서대로 키/값을 저장 - 빠른 검색 가능
  3. HashTable

    • Key, Value null이 허용되지 않는다.
    • hashMap 보다 느리지만 동기화를 지원
  4. LinkedHashMap

    • 순서가 정해져 있음

동기화를 지원하기 위한 메소드

 

'공부 > 개발' 카테고리의 다른 글

GO 프로그래밍 - 기초 1편 환경 설정  (0) 2020.11.11
swap  (0) 2018.01.10
상속  (0) 2017.12.27
헷갈리는 String  (0) 2017.12.26
인터페이스 강제 타입 변환(casting)  (4) 2017.06.13