자료형의 종류와 사용법 파헤쳐보기 - 해시맵
자료형이라 함은 어떤 종류가 있는지 확인해보기
해시맵은 Key와 Value를 묶어서 관리하는 자료형이라고 한다
장점: Key에 대응하는 Value를 빠르게 찾을 수 있다.
Rust에서 해시맵을 구현하기 위해서 HashMap
을 이용해서 구현이 가능하다.
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 92);
// 확인
println!("{:?}", scores);
}
결과: {"Bob": 85, "Charlie": 92, "Alice": 100}
생성되어있는 해시맵에 키를 이용하여 값을 가져오기 위한 과정
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 92);
// Key를 이용하여 값 가져오기
match scores.get("Alice") {
Some(score) => println!("{}", score),
None => println!("Not Found"),
}
// 확인
println!("{:?}", scores);
}
결과:
100
{"Alice": 100, "Bob": 85, "Charlie": 92}
이미 존재하는 경우 키의 값 업데이트
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 92);
// 키가 이미 존재하는 경우 업데이트
scores.insert("Alice", 95);
// 확인
println!("{:?}", scores);
}
결과: {"Bob": 85, "Alice": 95, "Charlie": 92}
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 92);
// 모든 키-값 조회
for (name, score) in &scores {
println!("{}: {}", name, score);
}
// 확인
println!("{:?}", scores);
}
결과:
Alice: 100
Bob: 85
Charlie: 92
{"Alice": 100, "Bob": 85, "Charlie": 92}
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 92);
// Key:Value 삭제
scores.remove("Bob");
// 확인
println!("{:?}", scores);
}
결과:{"Alice": 100, "Charlie": 92}
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 92);
if scores.contains_key("Bob") {
println!("Bob's score found");
} else {
println!("Bob's score not found");
}
}
결과:Bob's score found
use std::collections::HashMap;
fn main() {
// HashMap을 생성
let mut scores = HashMap::new();
// HashMap에 데이터 추가
scores.insert("Alice", 100);
scores.insert("Charlie", 92);
if scores.contains_key("Bob") {
println!("Bob's score found");
} else {
println!("Bob's score not found");
}
}
결과:Bob's score not found
현재 시리즈는 다음 링크를 공부한 내용을 기록하고 있습니다.
> 파이썬 프로그래머를 위한 러스트 입문 - 6.1 자료형 <