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 |