use std::collections::HashMap;
let mut map = HashMap::new();
map.insert("key1", "value1"); // (키, 값) 쌍으로 저장
map.insert("key2", "value2");
println!("{}", map.get("key1").unwrap()); // "value1" 출력
키(Key)와 값(Value) 쌍을 저장
각 키는 고유해야 함
예: {"name": "John", "age": 30}
HashSet<T>
std::collections::HashSet;
let mut set = HashSet::new();
set.insert("value1"); // 값만 저장
set.insert("value2");
println!("{}", set.contains("value1")); // true 출력
값만 저장 (키가 없음)
중복된 값을 허용하지 않음
예: {"apple", "banana", "orange"}
내부 구현 관계
// 실제 Rust 표준 라이브러리에서 HashSet은 HashMap을 이용해 구현됨
pub struct HashSet<T, ...> {
pub(crate) map: HashMap<T, (), ...>, // 값을 키로 사용하고, 값은 빈 튜플
}
사용 예시 비교
// HashMap 사용
let mut scores = HashMap::new();
scores.insert("Alice", 100);
scores.insert("Bob", 95);
// HashSet 사용
let mut unique_names = HashSet::new();
unique_names.insert("Alice");
unique_names.insert("Bob");
unique_names.insert("Alice"); // 무시됨 (이미 존재)
println!("{}", unique_names.len()); // 2 출력 (중복 제거)// Some code