BidiMap (Bidirectional Map) ব্যবহার

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) Enhanced Collection Classes |
153
153

BidiMap হল Apache Commons Collections এর একটি বিশেষ ডেটা স্ট্রাকচার যা bidirectional mapping এর সুবিধা প্রদান করে। সাধারণত, একটি Map ডেটা স্ট্রাকচারে, আপনি key → value ম্যাপিং করতে পারেন, কিন্তু BidiMap এ আপনি value → key ম্যাপিংও করতে পারেন, অর্থাৎ আপনি একটি মানের (value) উপর ভিত্তি করে সংশ্লিষ্ট কী (key) বের করতে পারবেন। এটি সাধারণ Map এর চেয়ে আরও বেশি নমনীয় এবং শক্তিশালী।

BidiMap কী?

BidiMap হল একটি বিশেষ ধরনের ম্যাপ যা দুটি দিক থেকে ডেটা অ্যাক্সেসের সুযোগ দেয়:

  1. key → value: আপনি কী থেকে মান বের করতে পারবেন।
  2. value → key: আপনি মান থেকে কী বের করতে পারবেন।

এটি DualHashBidiMap অথবা LinkedBidiMap এর মতো ক্লাস দ্বারা বাস্তবায়িত হয়।

BidiMap এর সুবিধা

  • Bidirectional Access: আপনি একটি মানের (value) জন্য কী (key) বের করতে পারবেন এবং কী এর জন্য মান (value) বের করতে পারবেন।
  • Data Integrity: আপনার ডেটার মধ্যে কী-মানের সম্পর্ক বজায় থাকে, এবং উভয় দিকের অ্যাক্সেসই সমানভাবে কার্যকরী।

BidiMap ব্যবহার

1. DualHashBidiMap ব্যবহার করা

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" বের করা হয়েছে।

2. LinkedBidiMap ব্যবহার করা

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 ব্যবহার করলে, কী এবং মান ইনসার্ট অর্ডারে প্রদর্শিত হবে।

BidiMap এর কিছু গুরুত্বপূর্ণ মেথড

  • put(K key, V value): একটি কী-মান পেয়ার যুক্ত করতে ব্যবহৃত হয়।
  • get(K key): একটি কী থেকে মান বের করতে ব্যবহৃত হয়।
  • getKey(V value): একটি মান থেকে সংশ্লিষ্ট কী বের করতে ব্যবহৃত হয়।
  • keySet(): সব কী গুলি বের করার জন্য।
  • values(): সব মান গুলি বের করার জন্য।
  • remove(K key): একটি কী-মান পেয়ার মুছে ফেলা।
  • removeValue(V value): একটি মান দ্বারা সংশ্লিষ্ট কী-মান পেয়ার মুছে ফেলা।

BidiMap এর সুবিধা

  • Bidirectional Access: আপনি একটি কী থেকে মান বের করতে পারেন এবং একটি মান থেকে কী বের করতে পারেন।
  • Data Integrity: একসাথে কী এবং মানের সম্পর্ক রক্ষা করে।
  • Flexible Use Cases: BidiMap বিভিন্ন ধরনের অ্যাপ্লিকেশন বা ব্যবহারে ব্যবহার করা যেতে পারে যেখানে দুই দিক থেকে ডেটার অ্যাক্সেস প্রয়োজন।

সারাংশ

  • BidiMap হল একটি বিশেষ ধরনের ম্যাপ যা আপনাকে key → value এবং value → key উভয় দিক থেকে ডেটা অ্যাক্সেস করার সুযোগ দেয়।
  • DualHashBidiMap এবং LinkedBidiMap হল BidiMap এর প্রধান দুটি বাস্তবায়ন।
  • এটি সাধারণ Map থেকে অনেক বেশি নমনীয় এবং শক্তিশালী, যেখানে আপনি যে কোনো দিক থেকে ডেটা অ্যাক্সেস করতে পারেন।

Apache Commons Collections এর BidiMap ব্যবহার করে আপনি জটিল ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন কাজগুলো আরও সহজ, দ্রুত এবং কার্যকরভাবে করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion