
| 인터페이스 | 구현 클래스 | 특징 |
| List | LinkedList Stack Vector ArrayList |
순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. |
| Set | HashSet TreeSet |
순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. |
| Map | HashMap TreeMap HashTable Properties |
키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합 순서는 유지되지 않고, 키는 중복을 허용하지 않으며 값의 중복을 허용한다. |
Stack
- 데이터의 삽입과 추출이 후입선출(LIFO) 구조로 되어 있다.
- push() : 데이터 삽입
- pop() : 데이터 추출
- peek() : 데이터를 삭제하지 않고 추출만 함
- search() : stack으로부터 데이터를 검색할 때 사용
Vector
- 자동으로 동기화를 보장해준다.
- ArrayList에 동기화가 보장되도록 최적화한 클래스이다.
- addElement() : 데이터 삽입
- elementAt() : 데이터 추출. index에 해당하는 객체를 얻어낸다.
- size() : vector 내에 존재하는 객체의 수를 얻어낼 때 사용한다.
- insertElementAt() : vector 중간에 삽입
- setElementAt() : vector 내에 존재하는 데이터를 수정할 때 사용
- indexOf() : vector 내에 데이터를 검색할 때 사용. index를 반환한다.
- contains() : 데이터의 존재 유무 확인
ArrayList
- 동기화를 보장하지 않는다.
- 배열에 동적 메모리 증가 기능을 구현한 클래스이다.
- add() : 데이터 삽입
- get() : 데이터 추출
- toArray() : ArrayList로부터 배열을 얻어낼 때 사용
- contains() : 데이터의 존재 유무 확인
- size() : ArrayList 내에 존재하는 객체의 수를 얻어낼 때 사용한다.
Set
- 집합적인 개념의 Collection
- 순서의 의미가 없다.
- 데이터를 중복해서 포함할 수 없다.
HashSet
- add() : 데이터 삽입
- next() : 데이터 추출
- remove() : 데이터 삭제
- contains() : 데이터 포함 여부 확인
- size() : HashSet 내에 존재하는 객체의 수를 얻어낼 때 사용한다.
Map
- List와 Set이 순서나 집합적인 개념의 인터페이스라면 Map은 검색의 개념이 있는 인터페이스이다.
- Map은 데이터를 삽입할 때 key와 value의 형태로 삽입되며, key를 사용해서 value를 얻을 수 있다.
Hashtable, HashMap의 공통점
- 내부적으로 모두 Hash 기법을 이용한다.
- Map 인터페이스를 구현하고 있다.
- key와 value를 이용해서 데이터를 관리한다.
Hashtable, HashMap의 차이점
- Hashtable은 동기화가 보장된다.
- HashMap은 동기화가 보장되지 않는다.
Hashtable, HashMap, HashSet
- Hashtable과 HashMap은 둘 다 Map인터페이스를 구현하고 있다.
- HashSet은 내부적으로 Hash기법을 사용하지만 Set인터페이스를 구현하고 있다.
HashMap
- put() : 데이터 삽입
- get() : 데이터 추출. argument값은 key를 사용한다.
HashTable
- put() : 데이터 삽입
- get() : 데이터 추출. argument값은 key를 사용한다.
TreeMap
- key와 value로 데이터를 관리한다.
- key를 기준으로 오름차순 정렬된다.
- Map 인터페이스를 상속한 SortedMap 인터페이스를 구현한 클래스이다.
TreeSet
- Set인터페이스를 상속한 SortedMap 인터페이스를 구현한 클래스이다.
- 데이터들이 자동으로 오름차순 정렬된다.
'Back-end > 자료구조' 카테고리의 다른 글
| Stack (0) | 2025.09.09 |
|---|---|
| Graph (3) | 2025.08.29 |
| Vector (0) | 2024.04.18 |
| LinkedList (0) | 2024.04.17 |
| 배열, List, ArrayList (0) | 2024.04.17 |