Rust:
এসোসিয়েটিভ অ্যারের ব্যবহার
কিভাবে:
এ হ্যাশম্যাপগুলি নিয়ে কাজ করা যায়:
use std::collections::HashMap;
fn main() {
// একটি নতুন HashMap তৈরি করা
let mut scores = HashMap::new();
// মান যোগ করা
scores.insert(String::from("নীল"), 10);
scores.insert(String::from("হলুদ"), 50);
// মান অ্যাক্সেস করা
let team_name = String::from("নীল");
if let Some(score) = scores.get(&team_name) {
println!("নীল দলের স্কোর: {}", score); // আউটপুট: নীল দলের স্কোর: 10
}
// একটি মান আপডেট করা
scores.entry(String::from("নীল")).and_modify(|e| *e += 5);
// কী-মান জোড়া নিয়ে অভিগমন
for (key, value) in &scores {
println!("{}: {}", key, value); // আউটপুট: নীল: 15, হলুদ: 50
}
}
গভীর ডুব
রাস্টের HashMap
কীগুলিকে মান অনুসন্ধান করতে একটি হ্যাশিং ফাংশন ব্যবহার করে, যা দ্রুত ডেটা পুনরুদ্ধারকে সক্ষম করে। তবে, এই দক্ষতার একটা খরচ হলো: হ্যাশ ম্যাপ তার উপাদানগুলির অর্ডার বজায় রাখে না। এটি অন্যান্য এসোসিয়েটিভ অ্যারে বাস্তবায়নের সাথে প্রতিকূল, যেমন পাইথনের (dict
) বা রুবির, যা সাম্প্রতিক সংস্করণে ইনসারশন অর্ডার বজায় রাখার একটি বৈশিষ্ট্য হিসেবে রাখে। কী-মান জোড়াগুলির অর্ডার গুরুত্বপূর্ণ যেখানে, রাস্ট ডেভেলপাররা std::collections
মডিউল থেকে BTreeMap
ব্যবহার করতে পারে, যা অর্ডার বজায় রাখে কিন্তু HashMap
এর তুলনায় সন্নিবেশ এবং পুনরুদ্ধার ধীর হতে পারে। শেষ পর্যন্ত, HashMap
এবং BTreeMap
এর মধ্যে বাছাই অর্ডারিং এবং পারফরমেন্সের চারপাশে নির্দিষ্ট প্রয়োজনীয়তা উপর নির্ভর করে।