Java:
এসোসিয়েটিভ অ্যারের ব্যবহার
কিভাবে:
জাভাতে কিছু ভাষার মতো বিল্ট-ইন এসোসিয়েটিভ অ্যারে নেই, তবে এটি Map
ইন্টারফেস এবং HashMap
এবং TreeMap
এর মতো ক্লাসগুলি প্রদান করে যা এই ভূমিকা পূরণ করে। এখানে HashMap
ব্যবহার করার উপায়:
import java.util.HashMap;
import java.util.Map;
public class LearnMaps {
public static void main(String[] args) {
// একটি HashMap তৈরি করা
Map<String, Integer> ageOfFriends = new HashMap<>();
// উপাদানগুলি যোগ করা
ageOfFriends.put("Alice", 24);
ageOfFriends.put("Bob", 30);
ageOfFriends.put("Charlie", 28);
// উপাদানগুলি প্রবেশ করা
System.out.println("Alice's age: " + ageOfFriends.get("Alice"));
// অস্তিত্বহীন কীগুলি সামলানো
System.out.println("ম্যাপে নেই এমন কারো বয়স: " + ageOfFriends.getOrDefault("Dan", -1));
// উপাদানগুলির উপর ইটারেশন
for (Map.Entry<String, Integer> entry : ageOfFriends.entrySet()) {
System.out.println(entry.getKey() + " is " + entry.getValue() + " বছরের।");
}
}
}
নমুনা আউটপুট:
Alice's age: 24
ম্যাপে নেই এমন কারো বয়স: -1
Alice is 24 বছরের।
Bob is 30 বছরের।
Charlie is 28 বছরের।
HashMap
কেবল একটি বাস্তবায়ন। যদি আপনার কী অনন্য হয় এবং আপনার তাদের সাজানো প্রয়োজন হয়, TreeMap
চিন্তা করুন। যদি আপনি ইনসারশনের ক্রম বজায় রাখতে চান, LinkedHashMap
আপনার জন্য বন্ধু।
গভীর ডুব
জাভাতে ম্যাপগুলি কালেকশন ফ্রেমওয়ার্কের অংশ, যা JDK 1.2-তে চালু হয়েছিল, তবে বছরের পর বছর সিগনিফিক্যান্ট উন্নতি দেখেছে, যার মধ্যে এন্ট্রিগুলির উপর সহজে ইটারেশনের জন্য জাভা 8-এ forEach
পদ্ধতির চালু হওয়া অন্তর্ভুক্ত। ম্যাপ বাস্তবায়নের পছন্দ (HashMap
, LinkedHashMap
, TreeMap
) অর্ডারিং এবং পারফরম্যান্সের দিক থেকে আপনার বিশেষ প্রয়োজনীয়তা নির্দেশিত করা উচিত। উদাহরণস্বরূপ, HashMap
মৌলিক অপারেশনগুলি (get এবং put) এর জন্য O(1) সময়ের পারফরম্যান্স অফার করে, ধরে নিলে যে হ্যাশ ফাংশন বালতির মধ্যে উপাদানগুলি যথাযথভাবে ছড়িয়ে দেয়। তবে, যদি আপনার প্রাকৃতিক অর্ডারিং বা কাস্টম কম্পারেটরগুলির ভিত্তিতে সর্টিং প্রয়োজন হয়, TreeMap
হল যাওয়ার পথ, যা সন্নিবেশ এবং অনুসন্ধানের জন্য O(log n) সময় প্রদান করে।
Map
চালু করার আগে, এসোসিয়েটিভ অ্যারেগুলি সাধারণত দুটি সমান্তরাল অ্যারে (একটি কীগুলির জন্য, অন্যটি মানগুলির জন্য) বা কম দক্ষতার সাথে কাস্টম ডেটা কাঠামোগুলির সাথে বাস্তবায়িত হয়েছিল। Map
এবং এর বাস্তবায়নগুলির বিকল্প হিসেবে, বিশেষায়িত ম্যাপ অফার করে এমন তৃতীয়-পক্ষের লাইব্রেরীগুলি থাকতে পারে, যেমন বিম্যাপ (Google’s Guava লাইব্রেরীতে বিম্যাপ) ক্ষেত্রে যেখানে আপনার মান দ্বারা দক্ষ্�