Rust의 HashMap 소개

2023. 6. 15. 09:34Language/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의 메서드 알아보기

 

Rust Option의 메서드 알아보기

오늘은 Rust의 Option에 대해 알아보도록 하겠습니다. Option Rust에서 기본적으로 null이 존재하지 않습니다. 그래서 널 포인터 참조와 같은 에러는 발생하지 않습니다. 하지만 Null을 표현하는 방법이

jandari91.tistory.com

 

소스 코드 확인

 

BlogPosts/example.rs at main · Jandari91/BlogPosts · GitHub

'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