Java

Java / 컬렉션 프레임워크 - Map, Stack, Queue

Dear-J 2025. 3. 9. 12:18

Map

키-값의 쌍을 저장하는 자료 구조

>> 키는 중복될 수 없지만 값은 중복 가능

>> Map은 순서를 유지하지 않음

 

Entry Key-Value Pair

>> Entry는 키-값의 쌍으로 이루어진 간단한 객체, Map 내부에서 키와 값을 함께 묶어서 저장할 때 사용

 

키 목록 조회

Set<String> keySet = studentMap.keySet()

>> Map의 키는 중복 허용 x

>> Map의 모든 키 목록을 조회하는 keySet() 호출하면 중복 허용하지 않는 자료 구조인 Set 반환

 

값 목록 조회

Collection<Integer> values = studentMap.values()

>> Map의 값은 중복 허용, Set으로 반환 불가

>> 입력 순서 보장 x, List로 반환하기 애매

>> 단순히 값의 모음이라는 의미의 상위 인터페이스 Collection으로 반환

 

자바 HashMap 작동원리

HashSet과 작동 원리가 같음

>> 차이로는 Key를 사용해서 해시 코드 생성

>> Key 뿐 아니라 값(Value)를 추가로 저장해야해서 Entry 사용

 

해시를 사용해서 키와 값을 저장하는 자료구조를 일반적으로 해시 테이블

 

Map의 Key로 사용되는 객체는 hashCode(), equals() 반드시 구현

 

Stack

후입선출(Last In First Out)

>> 가장 마지막에 넣은 3번이 가장 먼저 나옴

 

스택에 값을 넣는 것을 push, 값을 꺼내는 것을 pop

 

Queue

선입선출(First In First Out)

>> 가장 먼저 넣은 것이 가장 먼저 나오는 것

 

큐에 값을 넣는 것을 offer, 꺼내는 것을 poll

 

Deque(Double Ended Queue)

양쪽 끝에서 요소를 추가하거나 제거 가능

일반적인 큐와 스택의 기능을 모두 포함