ssung_항해일지/CS 지식 및 기술면접

List, Set, Map, Hash Map

ssungcohol 2023. 5. 11. 12:10

출처 : https://velog.io/@maestroks/List-Set-Map-HashMap%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94

 

1. List - 저장공간이 필요에 의해 자동으로 늘어나는 자료구조 (순서가 있음)

  • 특징 : 순서가 있고, 중복을 허용 (배열과 유사)
  • 장점 : 가변적인 배열 (배열이 자동으로 늘어남)
  • 단점 : 원하는 데이터의 위치가 뒤쪽에 위치할 시 속도 문제 발생
  • 방식 : equals()를 이용한 데이터 검색

2. Set - 집합이다! 순서가 없고 집합이므로 중복된 데이터가 들어갈 수 없다. 중복되지 않는 숫자(데이터)를 구할 때 사용하면 유용

  • 특징 : 순서가 없고, 중복을 허용하지 않음
  • 장점 : 빠른 속도
  • 단점 : 단순 집합의 개념으로 정렬하려면 별도의 처리가 필요

3. Map - 키와 데이터를 같이 저장

  • 특징 : Key(키)와 Value(값)으로 나눠서 데이터를 관리하고 순서가 없으며 키에 대한 중복을 허용하지 않음
  • 장점 : 빠른 속도
  • 단점 : Key의 검색 속도가 검색 속도를 좌우함

4. Hash Map - index 번호 대신 키 값으로 값을 찾는 맵 형태의 자료구조도 iterator 클래스를 이용해 키값을 순서대로 iterator에 저장해두면 순서대로 데이터 추출이 가능

  • HashMap은 Map Interface를 Implements 한 클래스로써 중복을 허용하지 않음
  • Map의 특징인 Key와 Value의 쌍으로 이루어지며 Key와 Value 값으로 null을 허용

List, Set, Map, Hash Map의 차이

  • List는 기본적으로 순서대로 데이터가 들어가고 중복을 허용
  • Set은 순서가 보장되지 않고, 중복을 허용하지 않음
  • Map은 순서가 보장되지 않고, Key 중복은 허용하지 않지만, Value 중복은 허용
    (Hash Map과 Map의 차이는 red-black tree 알고리즘을 이용)
  • Hash Map은 이름 그대로 Hash Table을 이용해 키-값 관계를 유지

※ Iterator란?

 - 자바의 컬렉션에 저장되어있는 요소들을 순회하는 인터페이스! 
 (collection - 자바에서 제공하는 자료구조들의 인터페이스로 List, Arraylist, Stack Queue, LinkedList등이 이를 상속받고 있다.

 

사용이유

 - 컬렉션 프레임워크에 대해 공통으로 사용이 가능하고 사용법이 간단하기 때문!
(하지만! 반복문보다 속도면에서는  조금 느리다는 평이 있다)

728x90

'ssung_항해일지 > CS 지식 및 기술면접' 카테고리의 다른 글

Rest Client [Spring]  (0) 2023.05.12
Spring Container  (0) 2023.05.11
제네릭 (generic)  (0) 2023.05.10
JPA 영속성 컨텍스트  (0) 2023.05.10
Index  (0) 2023.05.09