Map Interface এর ধারণা এবং বৈশিষ্ট্য

Map Interface এবং তার ইমপ্লিমেন্টেশন - জাভা ইউটিল.প্যাকেজ (Java.util Package) - Java Technologies

348

Map Interface হল Java Collections Framework এর একটি গুরুত্বপূর্ণ অংশ, যা key-value pairs এর আকারে ডেটা সংরক্ষণ করে। Map এর মাধ্যমে আপনি ডেটা সংরক্ষণ এবং দ্রুত অ্যাক্সেস করতে পারেন, যেখানে প্রতিটি কী (key) একটি মান (value) এর সাথে সম্পর্কিত থাকে।

1. Map Interface এর ধারণা

Map একটি collection নয়, বরং এটি key-value pair ধারণ করে, যা Collection ইন্টারফেসের মতো অন্যান্য ইন্টারফেসগুলির সাথে তুলনা করা যেতে পারে। একটি Mapkey এবং value এর মধ্যে সম্পর্ক থাকে, যেখানে প্রতিটি key একক এবং অসামান্য হয়, কিন্তু একাধিক value একই key এর সাথে সম্পর্কিত হতে পারে না। Map ক্লাসটি সাধারণত key-value mapping প্রক্রিয়া পরিচালনা করতে ব্যবহৃত হয়, যেমন Dictionary বা HashMap

Map ইন্টারফেসটি অনেক implementation ক্লাস দ্বারা ইমপ্লিমেন্ট করা হয়, যেমন:

  • HashMap
  • TreeMap
  • LinkedHashMap
  • Hashtable

2. Map Interface এর বৈশিষ্ট্য

Map Interface এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য হল:

  1. Key-Value Pair:
    • একটি Map একটি key-value pair ধারণ করে, যেখানে প্রতিটি key-এর জন্য একটি value থাকে।
    • Key একক হতে হবে এবং কোনো duplicate key থাকতে পারে না।
    • Value পুনরাবৃত্তি হতে পারে (একই মান একাধিক বার উপস্থিত থাকতে পারে)।
  2. No Duplicate Keys:
    • Map এ কোনো দুটি একে অপরকে সমান key থাকতে পারে না। তবে, আপনি বিভিন্ন key এর জন্য আলাদা value রাখতে পারেন।
  3. Ordering of Elements:
    • কিছু Map implementation যেমন LinkedHashMap এবং TreeMap উপাদানগুলিকে ইনসার্ট করার অবস্থান বা প্রাকৃতিক আদেশ অনুযায়ী রাখতে সক্ষম।
    • HashMap উপাদানগুলির মধ্যে কোনো নির্দিষ্ট অর্ডার গ্যারান্টি দেয় না।
  4. Efficient Access:
    • Map এর মধ্যে অ্যাক্সেস কৌশল অত্যন্ত দক্ষ, বিশেষ করে HashMap এর ক্ষেত্রে, যেখানে O(1) সময়ে এলিমেন্ট অ্যাক্সেস করা সম্ভব।
  5. Null Values:
    • বেশিরভাগ Map implementation (যেমন HashMap) null values সমর্থন করে, তবে TreeMap বা Hashtablenull key বা value রাখার অনুমতি নেই।

3. Map Interface এর প্রধান মেথডসমূহ

Map Interface এ কিছু প্রধান মেথড রয়েছে যা key-value pair সম্পর্কিত কার্যাবলী সম্পাদন করতে ব্যবহৃত হয়:

  1. put(K key, V value):

    • এটি একটি key-value pair মানচিত্রে যোগ করে। যদি ঐ key আগেই থাকে, তাহলে পুরানো valueটি নতুন value দ্বারা প্রতিস্থাপিত হয়।
    map.put("apple", 1);
    
  2. get(Object key):

    • এটি নির্দিষ্ট key এর জন্য সংশ্লিষ্ট value প্রদান করে। যদি key পাওয়া না যায়, তবে এটি null রিটার্ন করে।
    map.get("apple");  // Returns 1 if "apple" is present
    
  3. containsKey(Object key):

    • এটি পরীক্ষা করে যে মানচিত্রে নির্দিষ্ট key রয়েছে কিনা। এটি true অথবা false রিটার্ন করে।
    map.containsKey("apple");  // Returns true
    
  4. remove(Object key):

    • এটি একটি নির্দিষ্ট key এবং তার সংশ্লিষ্ট value মুছে ফেলে।
    map.remove("apple");
    
  5. size():

    • এটি মানচিত্রে মোট উপাদান সংখ্যা প্রদান করে।
    map.size();  // Returns number of key-value pairs
    
  6. keySet():

    • এটি সমস্ত key এর একটি Set প্রদান করে।
    Set<K> keys = map.keySet();
    
  7. values():

    • এটি সমস্ত value এর একটি Collection প্রদান করে।
    Collection<V> values = map.values();
    
  8. clear():

    • এটি সমস্ত key-value pair মুছে ফেলে।
    map.clear();
    

4. Map Interface এর Implementation Examples

4.1. HashMap

HashMap হল Map ইন্টারফেসের সবচেয়ে জনপ্রিয় ইমপ্লিমেন্টেশন। এটি hash table এর মাধ্যমে key-value pairs সংরক্ষণ করে এবং null values সমর্থন করে। তবে, এটি order গ্যারান্টি দেয় না।

import java.util.Map;
import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        
        // Adding elements
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("cherry", 3);
        
        // Accessing elements
        System.out.println("Value for key 'banana': " + map.get("banana"));

        // Removing an element
        map.remove("apple");
        
        // Size of the map
        System.out.println("Size of map: " + map.size());
        
        // Check if a key exists
        System.out.println("Contains key 'cherry': " + map.containsKey("cherry"));
    }
}

Output:

Value for key 'banana': 2
Size of map: 2
Contains key 'cherry': true

4.2. TreeMap

TreeMap হল Map ইন্টারফেসের একটি সুনির্দিষ্ট ইমপ্লিমেন্টেশন যা natural ordering বা একটি নির্দিষ্ট comparator এর মাধ্যমে key-value pairs রাখে। এটি sorted থাকে।

import java.util.Map;
import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new TreeMap<>();
        
        // Adding elements
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("cherry", 3);
        
        // Printing the map (sorted by key)
        System.out.println(map);  // {apple=1, banana=2, cherry=3}
    }
}

Output:

{apple=1, banana=2, cherry=3}

4.3. LinkedHashMap

LinkedHashMap হল HashMap এর একটি বিশেষ ইমপ্লিমেন্টেশন যা insertion order বজায় রাখে। এটি Linked List এর মাধ্যমে key-value pairs সংরক্ষণ করে এবং order গ্যারান্টি দেয়।

import java.util.Map;
import java.util.LinkedHashMap;

public class LinkedHashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new LinkedHashMap<>();
        
        // Adding elements
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("cherry", 3);
        
        // Printing the map (insertion order preserved)
        System.out.println(map);  // {apple=1, banana=2, cherry=3}
    }
}

Output:

{apple=1, banana=2, cherry=3}

5. Differences Between HashMap, TreeMap, and LinkedHashMap

FeatureHashMapTreeMapLinkedHashMap
OrderingNo order guaranteedSorted by key (natural or comparator)Insertion order is preserved
Null Keys/ValuesAllows null keys and valuesDoes not allow null keysAllows null keys and values
PerformanceFast for random access (O(1))Slower (O(log n) due to sorting)Slightly slower than HashMap (due to linked list)
Use CaseGeneral-purpose use caseSorted map, range queriesWhen insertion order matters

  • Map Interface Java Collections Framework এর একটি গুরুত্বপূর্ণ অংশ এবং key-value pairs ধারণ করতে ব্যবহৃত হয়।
  • HashMap, TreeMap, এবং LinkedHashMap হল Map ইন্টারফেসের প্রধান ইমপ্লিমেন্টেশন, এবং প্রতিটির পারফরম্যান্স এবং ব্যবহারিক বৈশিষ্ট্য আলাদা।
  • HashMap দ্রুত অ্যাক্সেস এবং random access এর জন্য উপযুক্ত, TreeMap অ্যাক্সেসের জন্য sorted order প্রদান করে, এবং LinkedHashMap ইনসার্ট করা অর্ডার বজায় রাখে।

অতএব, Map এর ব্যবহার নির্বাচন করতে হলে আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী সঠিক Map implementation নির্বাচন করুন।

Content added By
Promotion

Are you sure to start over?

Loading...