Sử dụng mảng liên kết

Rust:
Sử dụng mảng liên kết

Làm thế nào:

Trong Rust, kiểu HashMap từ mô-đun std::collections cung cấp chức năng của mảng kết hợp. Dưới đây là cách bạn có thể làm việc với chúng:

use std::collections::HashMap;

fn main() {
    // Tạo một HashMap mới
    let mut scores = HashMap::new();

    // Chèn giá trị
    scores.insert(String::from("Blue"), 10);
    scores.insert(String::from("Yellow"), 50);

    // Truy cập giá trị
    let team_name = String::from("Blue");
    if let Some(score) = scores.get(&team_name) {
        println!("Điểm của đội Blue: {}", score); // Đầu ra: Điểm của đội Blue: 10
    }

    // Cập nhật một giá trị
    scores.entry(String::from("Blue")).and_modify(|e| *e += 5);

    // Duyệt qua các cặp khóa-giá trị
    for (key, value) in &scores {
        println!("{}: {}", key, value); // Đầu ra: Blue: 15, Yellow: 50
    }
}

Sâu hơn

HashMap trong Rust sử dụng một hàm băm để ánh xạ các khóa với giá trị, giúp việc truy xuất dữ liệu nhanh chóng. Tuy nhiên, hiệu quả này đi kèm với một cái giá: bản đồ băm không giữ nguyên thứ tự của các phần tử của mình. Điều này trái ngược với các triển khai mảng kết hợp khác, như trong Python (dict) hoặc Ruby, mà ở các phiên bản gần đây duy trì thứ tự chèn như một tính năng. Đối với các trường hợp sử dụng mà thứ tự của các cặp khóa-giá trị là quan trọng, các nhà phát triển Rust có thể cân nhắc sử dụng BTreeMap từ mô-đun std::collections, giữ thứ tự nhưng có thể cung cấp tốc độ chèn và truy xuất chậm hơn so với HashMap. Cuối cùng, sự lựa chọn giữa HashMapBTreeMap phụ thuộc vào các yêu cầu cụ thể xung quanh thứ tự và hiệu suất.