해시맵은 키-값 쌍을 저장하는 데 사용되는 컬렉션입니다.
해시 함수를 사용하여 키를 해싱하여 값을 빠르게 찾을 수 있습니다.
해시맵은 삽입, 검색 및 삭제 작업에 대한 평균 시간 복잡도가 O(1)
입니다.
해시맵을 생성하려면 다음과 같은 방법을 사용할 수 있습니다.
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>>();
해시맵에 키-값 쌍을 삽입하거나 업데이트하려면 insert
메서드를 사용합니다.
// 키-값 쌍 삽입
scores.insert("Alice".to_string(), 50);
scores.insert("Bob".to_string(), 60);
// 키-값 쌍 업데이트
scores.insert("Alice".to_string(), 55);
해시맵에서 값을 접근하거나 삭제하려면 get
또는 remove
메서드를 사용합니다.
// 값에 접근하기
if let Some(score) = scores.get("Alice") {
println!("Alice의 점수: {}", score);
}
// 값 삭제하기
scores.remove("Alice");
해시맵의 키-값 쌍을 반복하려면 for
루프를 사용합니다.
for (key, value) in &scores {
println!("{}: {}", key, value);
}
해시맵에서 자주 사용되는 작업들은 다음과 같습니다.
contains_key
: 특정 키가 해시맵에 있는지 확인합니다.keys
: 해시맵의 모든 키를 반환합니다.values
: 해시맵의 모든 값을 반환합니다.// 키가 해시맵에 있는지 확인하기
if scores.contains_key("Alice") {
println!("Alice의 점수가 있습니다.");
}
// 해시맵의 모든 키 출력하기
for key in scores.keys() {
println!("키: {}", key);
}
// 해시맵의 모든 값 출력하기
for value in scores.values() {
println!("값: {}", value);
}
더 많은 메소드는 공식 문서를 참고하세요.