BidiMap হল Apache Commons Collections এর একটি বিশেষ ডেটা স্ট্রাকচার যা bidirectional mapping এর সুবিধা প্রদান করে। সাধারণত, একটি Map ডেটা স্ট্রাকচারে, আপনি key → value ম্যাপিং করতে পারেন, কিন্তু BidiMap এ আপনি value → key ম্যাপিংও করতে পারেন, অর্থাৎ আপনি একটি মানের (value) উপর ভিত্তি করে সংশ্লিষ্ট কী (key) বের করতে পারবেন। এটি সাধারণ Map এর চেয়ে আরও বেশি নমনীয় এবং শক্তিশালী।
BidiMap হল একটি বিশেষ ধরনের ম্যাপ যা দুটি দিক থেকে ডেটা অ্যাক্সেসের সুযোগ দেয়:
এটি DualHashBidiMap অথবা LinkedBidiMap এর মতো ক্লাস দ্বারা বাস্তবায়িত হয়।
DualHashBidiMap হল BidiMap এর একটি বাস্তবায়ন যা দ্রুত কার্যক্ষমতা প্রদান করে। এটি HashMap এর মতো কাজ করে এবং দুই দিক থেকে ম্যাপিং সম্পাদন করতে সহায়তা করে।
DualHashBidiMap
ব্যবহারimport org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.map.DualHashBidiMap;
public class BidiMapExample {
public static void main(String[] args) {
// DualHashBidiMap তৈরি
BidiMap<String, String> bidiMap = new DualHashBidiMap<>();
// কী এবং মান যোগ করা
bidiMap.put("first", "apple");
bidiMap.put("second", "banana");
bidiMap.put("third", "cherry");
// key → value
System.out.println("First key maps to value: " + bidiMap.get("first")); // Output: apple
// value → key
System.out.println("Banana maps to key: " + bidiMap.getKey("banana")); // Output: second
// সব কী এবং মান দেখতে
System.out.println("All keys: " + bidiMap.keySet());
System.out.println("All values: " + bidiMap.values());
}
}
আউটপুট:
First key maps to value: apple
Banana maps to key: second
All keys: [first, second, third]
All values: [apple, banana, cherry]
এখানে:
bidiMap.put("first", "apple")
: এই লাইনে "first"
কী এর জন্য "apple"
মান যুক্ত করা হয়েছে।bidiMap.get("first")
: "first"
কী থেকে সংশ্লিষ্ট মান "apple"
পাওয়া গেছে।bidiMap.getKey("banana")
: "banana"
মান থেকে সংশ্লিষ্ট কী "second"
বের করা হয়েছে।LinkedBidiMap হল আরেকটি BidiMap বাস্তবায়ন, যা ইনসার্ট অর্ডার বজায় রাখে। এটি ডেটার ইনসার্ট অর্ডার অনুযায়ী কী-মানের সম্পর্ক রক্ষা করে।
LinkedBidiMap
ব্যবহারimport org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.map.LinkedBidiMap;
public class LinkedBidiMapExample {
public static void main(String[] args) {
// LinkedBidiMap তৈরি
BidiMap<String, String> bidiMap = new LinkedBidiMap<>();
// কী এবং মান যোগ করা
bidiMap.put("first", "apple");
bidiMap.put("second", "banana");
bidiMap.put("third", "cherry");
// key → value
System.out.println("Third key maps to value: " + bidiMap.get("third")); // Output: cherry
// value → key
System.out.println("Apple maps to key: " + bidiMap.getKey("apple")); // Output: first
// ইনসার্ট অর্ডার দেখতে
System.out.println("All keys in insertion order: " + bidiMap.keySet());
}
}
আউটপুট:
Third key maps to value: cherry
Apple maps to key: first
All keys in insertion order: [first, second, third]
এখানে:
LinkedBidiMap
ব্যবহার করলে, কী এবং মান ইনসার্ট অর্ডারে প্রদর্শিত হবে।Apache Commons Collections এর BidiMap ব্যবহার করে আপনি জটিল ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন কাজগুলো আরও সহজ, দ্রুত এবং কার্যকরভাবে করতে পারবেন।
common.read_more