Rust의 HashMap 소개
2023. 6. 15. 09:34ㆍLanguage/Rust
HashMap이란?
HashMap은 키-값 쌍(Key-Value Pair)로 이루어진 데이터를 저장하는 데이터 구조입니다. HashMap을 사용하면 키를 통해 값을 빠르게 검색하거나 수정하는 것이 가능합니다. 또한 키는 고유하며, 중복되지 않아야 합니다.
let mut 변수명 : HashMap<키 타입, 값 타입> = HashMap::new();
위와 같이 HashMap을 생성 할 수 있습니다.
HashMap 생성 및 값 추가
모듈 가져오기
먼저 모듈을 가져오기 위해서는 아래와 같이 표준 라이브러리로부터 해당 모듈을 가져와야 합니다.
use std::collections::HashMap;
HashMap 생성하기
HashMap은 키와 값을 연결해 주는 테이블입니다. 아래와 같이 생성합니다.
let mut fruits = HashMap::new();
데이터 추가하기
데이터를 HashMap에 추가하는 방법은 두가지가 있습니다. 하나는 insert() 메소드를 사용하는 것이며, 나머지는 entry() 메소드와 or_insert() 메소드를 쌍으로 사용하는 방법입니다.
// insert() 메소드 사용하는 경우
fruits.insert("apple", 3);
// entry() 메소드와 or_insert() 메소드를 쌍으로 사용하는 경우
fruits.entry("banana").or_insert(4);
데이터 삭제하기
HashMap에서 데이터를 삭제하는 방법은 remove() 메소드를 사용하면 됩니다.
fruits.remove("apple");
전체 데이터 접근하기
HashMap의 원소를 순회하려면 iter() 메소드를 사용하면 됩니다.
for(i,v) in fruits.iter().enumerate() {
println!("{:?} : {:?}", i, v);
}
HashMap에 존재하지 않는 키 취득할 때
HashMap에 존재하지 않은 키를 취득하려고 하면 에러가 발생해 강제 종료됩니다. 그래서 먼저 존재하는지 확인 후 가져오는 로직이 필요합니다.
fruits.get("apple")
과 같이 get
메서드는 Option 타입을 반환하는 메서드입니다.
- None : 값이 존재하지 않음.
- Some : 값이 있음
if fruits.get("apple") == None {
println!("apple이 존재하지 않음");
} else {
println!("apple이 존재함 : {}", fruits["apple"]);
}
Option에 대해서는 아래 글을 참고하시면 됩니다.
2023.04.01 - [Language/Rust] - Rust Option의 메서드 알아보기
소스 코드 확인
'Language > Rust' 카테고리의 다른 글
환경변수 파일 읽기 (0) | 2023.06.21 |
---|---|
Rust 명령줄의 인수 받기 (0) | 2023.06.18 |
Rust Shuffle (0) | 2023.06.11 |
Rust fmt 모듈 (0) | 2023.06.07 |
Rust에서 RabbitMQ 사용하기 (WorkQueue) (0) | 2023.06.03 |