Rust collection

HashMap 상태 지도

해시맵은 키로 값을 찾는 컬렉션이다. 핵심은 삽입, 조회, 갱신 방식을 상황별로 고르는 것이다.

01

생성

HashMap::new()로 빈 저장소를 만들고 필요한 타입을 추론하게 둔다.

02

삽입

insert는 키와 값을 저장한다. 소유한 문자열을 넣으면 소유권도 맵으로 이동한다.

03

조회

get은 옵션을 돌려준다. 없는 키를 안전하게 다루려면 기본값을 정한다.

04

갱신

entry는 존재 여부에 따라 삽입하거나 기존 값을 수정하는 분기점이다.

05

순회

for (key, value)로 쌍을 읽되, 순서가 의미 있다고 가정하지 않는다.

상황
도구
결과
무조건 덮어쓴다
insert(key, value)
이미 같은 키가 있으면 새 값으로 교체된다.
없을 때만 넣는다
entry(key).or_insert(value)
기존 값은 유지하고, 빈 자리일 때만 기본값을 채운다.
기존 값으로 계산한다
*count += 1
entry가 준 가변 참조를 통해 단어 개수 같은 누적 값을 갱신한다.
없을 수도 있다
get().copied().unwrap_or(0)
옵션을 다뤄 누락된 키를 패닉 없이 기본값으로 처리한다.
insert

소유권 이동 확인

String 같은 소유 값은 맵에 들어간 뒤 원래 변수에서 바로 쓸 수 없다.

entry

분기와 수정을 한곳에

키 검사와 삽입, 기존 값 수정이 흩어지지 않아 갱신 코드가 짧고 안전해진다.

hasher

기본값은 방어적 선택

기본 해시는 공격 저항성을 우선한다. 다른 해시는 성능 요구가 명확할 때 바꾼다.