[Java] Map

이병수·2024년 1월 7일
0

Java

목록 보기
18/27
post-thumbnail

Map


Map 컬렉션

Map 컬렉션은 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조를 가지고 있다.

Map 컬렉션 종류

  • HashMap

  • HashTable

  • LinkedHashMap

  • TreeMap 등이 있다.


Map 인터페이스 메서드

메서드기능
V put(K key,V value)매개변수로 주어진 키와 값이 추가하며, 저장되면 값을 반환
boolean containsKey(Object key)매개변수로 주어진 키가 Map 컬렉션에 존재하는지 여부를 확인
Set<Map, Entry<K,V>> entrySet()키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set 컬렉션에 담아서 반환
boolean isEmpty()Map 컬렉션이 비어있는지 여부를 확인
Set keySet()Map 컬렉션에 저장된 모든 키를 Set 컬렉션에 담아서 반환
Collection values()Map 컬렉션에 저장된 모든 값을 Collection에 담아서 반환
void clear()Map 컬렉션에 저장된 모든 Map.Entry 객체를 삭제
V remove(Object key)매개변수로 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 반환

Map이란?

Map은 Key와 Value 한쌍으로 이루어진 자료형이다.

  • 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다.

  • 값(Value)는 중복이 될 수 있지만, Key는 고유한 값을 가져야한다.

Map<Key,Value>

  • 기본적으로 Map은 key-value 구조로 구성되어 데이터를 저장한다.

  • key를 이용하여 데이터 검색에 최적화 되어 있으나, 동일한 key에 다른 데이터 value가 저장되어 있을 경우 기존에 저장된 데이터는 덮어씌워져 사라진다 (key는 중복될 수 없음)


HashMap<Key,Value>

해싱(Hashing)된 맵(Map)

Hash Table은 key와 value를 저장하며, key를 이용하여 빠르게 데이터를 찾기 위한 자료구조를 가지고 있다.


HashMap의 특징

  • HashMap은 Map을 구현하고, key와 value를 묶어서 하나의 entry로 저장한다는 특징을 가지고 있다.

  • 해시 알고리즘(hash algorithm)을 사용하여 많은 양의 데이터를 검색하는데 검색 속도가 빠르다.

  • 멀티쓰레드에서는 HashTable을 사용한다.


HashMap 주요 메서드

메서드기능
void clear()해당 맵(map)의 모든 매핑(mapping)을 제거
boolean containsKey(Object key)해당 맵이 전달된 키를 포함하고 있는지를 확인
boolean containsValue(Object value)해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하는지 확인
V get(Object key)해당 맵에 전달된 키에 대응하는 값을 반환, 없으면 null
boolean isEmpty()해당 맵이 비어있는지 확인
Set keySet()해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체 반환
V put(K key,V value)해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑
V remove(Object key)해당 맵에서 전달된 키에 대응하는 매핑을 제거
boolean remove(Object key,Object value)해당 맵에서 특정 값에 대응하는 키의 매핑을 제거
V replace(K key,V value)해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체
boolean replace(K key,V oldValue,V newValue)해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체
int size()해당 맵의 매핑의 총 개수를 반환

TreeMap

이진 탐색 트리 형태로 데이터를 저장한다.

  • 이진 탐색 트리(Binary Search Tree) 는 하나의 부모 노드가 최대 두 개의 자식 노드와 연결된 형태로 데이터를 저장하는 자료구조이다.

  • 이진 탐색 트리(Binary Tree) 는 정렬과 검색에 특화된 자료 구조이다.

  • TreeMap의 사용 방법은 HashMap과 매우 유사하게 다룰 수 있다.

  • 하지만 TreeMap은 키 값에 따라 오름차순으로 자동 정렬된다는 특징이 있기 때문에 순서를 알고 있으면 접근하기가 매우 쉽다.


참고

profile
백엔드 개발자가 되고 싶어요

0개의 댓글