러스트에서 HashMap의 모든 요소를 순회하는 방법을 소개합니다.
1. for문으로 모든 Entry 순회
iter()
는 HashMap의 모든 Entry를 가리키는 Iterator를 리턴합니다.
아래와 같이 for문으로 모든 Entry(key-value)를 참조할 수 있습니다.
use std::collections::HashMap;
fn main() {
let mut my_map: HashMap<&str, &str> = HashMap::new();
my_map.insert("a", "10");
my_map.insert("b", "20");
my_map.insert("c", "30");
for (key, val) in my_map.iter() {
println!("key: {}, val: {}", key, val);
}
}
Output:
key: c, val: 30
key: a, val: 10
key: b, val: 20
순회 중 값 변경
아래와 같이 HashMap의 모든 요소를 순회하면서 value를 변경할 수 있습니다.
iter_mut()
는 변경 가능한 iterator를 가져옴
use std::collections::HashMap;
fn main() {
let mut my_map: HashMap<&str, i32> = HashMap::new();
my_map.insert("a", 10);
my_map.insert("b", 20);
my_map.insert("c", 30);
for (_, val) in my_map.iter_mut() {
*val += 100;
}
for (key, val) in my_map.iter() {
println!("key: {}, val: {}", key, val);
}
}
Output:
key: b, val: 120
key: c, val: 130
key: a, val: 110
2. key 값들만 순회
my_map.keys()
는 HashMap의 모든 key들에 대한 Iterator를 리턴하며, for문으로 아래와 같이 순회할 수 있습니다.
use std::collections::HashMap;
fn main() {
let mut my_map: HashMap<&str, i32> = HashMap::new();
my_map.insert("a", 10);
my_map.insert("b", 20);
my_map.insert("c", 30);
for key in my_map.keys() {
println!("key: {}", key);
}
}
Output:
key: b
key: a
key: c
3. value 값들만 순회
my_map.keys()
는 HashMap의 모든 key들에 대한 Iterator를 리턴하며, for문으로 아래와 같이 순회할 수 있습니다.
use std::collections::HashMap;
fn main() {
let mut my_map: HashMap<&str, i32> = HashMap::new();
my_map.insert("a", 10);
my_map.insert("b", 20);
my_map.insert("c", 30);
for value in my_map.values() {
println!("value: {}", value);
}
}
Output:
value: 10
value: 20
value: 30
Loading script...
Related Posts
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환