Rust 튜토리얼 목차

해시맵(HashMap)

해시맵은 키-값 쌍을 저장하는 데 사용되는 컬렉션입니다.

해시 함수를 사용하여 키를 해싱하여 값을 빠르게 찾을 수 있습니다.

해시맵은 삽입, 검색 및 삭제 작업에 대한 평균 시간 복잡도가 O(1)입니다.

a. 해시맵 생성 및 초기화

해시맵을 생성하려면 다음과 같은 방법을 사용할 수 있습니다.

use std::collections::HashMap;

// 빈 해시맵 생성
let mut scores: HashMap<String, u32> = HashMap::new();

// 초기 값이 있는 해시맵 생성
let scores = vec![("Alice", 50), ("Bob", 60)]
    .into_iter()
    .map(|(k, v)| (k.to_string(), v))
    .collect::<HashMap<String, u32>>();

b. 키-값 쌍 삽입 및 업데이트

해시맵에 키-값 쌍을 삽입하거나 업데이트하려면 insert 메서드를 사용합니다.

// 키-값 쌍 삽입
scores.insert("Alice".to_string(), 50);
scores.insert("Bob".to_string(), 60);

// 키-값 쌍 업데이트
scores.insert("Alice".to_string(), 55);

c. 값에 접근하고 삭제하기

해시맵에서 값을 접근하거나 삭제하려면 get 또는 remove 메서드를 사용합니다.

// 값에 접근하기
if let Some(score) = scores.get("Alice") {
    println!("Alice의 점수: {}", score);
}

// 값 삭제하기
scores.remove("Alice");

d. 해시맵 순회하기

해시맵의 키-값 쌍을 반복하려면 for 루프를 사용합니다.

for (key, value) in &scores {
    println!("{}: {}", key, value);
}

e. 일반적인 해시맵 작업

해시맵에서 자주 사용되는 작업들은 다음과 같습니다.

// 키가 해시맵에 있는지 확인하기
if scores.contains_key("Alice") {
    println!("Alice의 점수가 있습니다.");
}

// 해시맵의 모든 키 출력하기
for key in scores.keys() {
    println!("키: {}", key);
}

// 해시맵의 모든 값 출력하기
for value in scores.values() {
    println!("값: {}", value);
}

더 많은 메소드는 공식 문서를 참고하세요.