Map Iteration এবং MapUtils এর উন্নত ব্যবহার

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) Bidirectional Maps এবং Advanced Map Operations |
130
130

অ্যাপাচি কমন্স কালেকশনস (Apache Commons Collections) লাইব্রেরিতে MapUtils ক্লাস বিভিন্ন ধরণের ম্যাপ (Map) পরিচালনা সহজ করে। এটি সাধারণ Map অপারেশন যেমন ইটারেশন, ডিফল্ট মান সেট করা, বা রিভার্স ম্যাপ তৈরির জন্য উন্নত ফিচার সরবরাহ করে।


Map Iteration

Map এর উপর ইটারেশন করা জাভার সাধারণ পদ্ধতি হলেও অ্যাপাচি কমন্সের MapUtils এটি আরও সহজ এবং কার্যকর করে তোলে।

১. স্ট্যান্ডার্ড পদ্ধতিতে Map ইটারেশন

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

public class StandardMapIteration {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("Apple", 3);
        map.put("Banana", 5);
        map.put("Orange", 2);

        // Key-Value ইটারেট করা
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

২. MapUtils ব্যবহার করে সহজ ইটারেশন

MapUtils.verbosePrint() বা MapUtils.debugPrint() এর মাধ্যমে একটি ম্যাপের কনটেন্ট দ্রুত প্রিন্ট করা যায়।

import org.apache.commons.collections4.MapUtils;

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

public class MapUtilsIteration {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("Apple", 3);
        map.put("Banana", 5);
        map.put("Orange", 2);

        // Map এর কনটেন্ট প্রিন্ট করা
        MapUtils.verbosePrint(System.out, "Fruit Counts", map);
    }
}

আউটপুট:

Fruit Counts = {3 entries}
    Apple = 3
    Banana = 5
    Orange = 2

MapUtils এর উন্নত ব্যবহার

১. Default Value প্রদান

কখনো কখনো null ভ্যালু এড়ানোর জন্য ম্যাপ থেকে ডিফল্ট মান রিটার্ন করার প্রয়োজন হতে পারে।

import org.apache.commons.collections4.MapUtils;

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

public class DefaultValueExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("Apple", 3);
        map.put("Banana", 5);

        // ডিফল্ট মান প্রদান
        int orangeCount = MapUtils.getIntValue(map, "Orange", 0);

        System.out.println("Orange Count: " + orangeCount); // আউটপুট: 0
    }
}

২. Reversed Map তৈরি

MapUtils.invertMap() ব্যবহার করে একটি ম্যাপের কী এবং ভ্যালু উল্টানো যায়।

import org.apache.commons.collections4.MapUtils;

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

public class InvertMapExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("One", "1");
        map.put("Two", "2");
        map.put("Three", "3");

        // কী এবং ভ্যালু উল্টানো
        Map<String, String> reversedMap = MapUtils.invertMap(map);

        System.out.println("Reversed Map: " + reversedMap);
    }
}

আউটপুট:

Reversed Map: {1=One, 2=Two, 3=Three}

৩. Unmodifiable Map তৈরি

MapUtils.unmodifiableMap() ব্যবহার করে একটি Immutable Map তৈরি করা যায়।

import org.apache.commons.collections4.MapUtils;

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

public class UnmodifiableMapExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("Key1", "Value1");
        map.put("Key2", "Value2");

        // Unmodifiable Map তৈরি
        Map<String, String> unmodifiableMap = MapUtils.unmodifiableMap(map);

        // নতুন মান যোগ করার চেষ্টা
        unmodifiableMap.put("Key3", "Value3"); // UnsupportedOperationException থ্রো করবে
    }
}

৪. Lazy Map তৈরি

MapUtils.lazyMap() ব্যবহার করে এমন একটি ম্যাপ তৈরি করা যায়, যেখানে নতুন কী ব্যবহার করলে একটি ডিফল্ট মান বা অবজেক্ট স্বয়ংক্রিয়ভাবে তৈরি হয়।

import org.apache.commons.collections4.MapUtils;
import org.apache.commons.collections4.Factory;

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

public class LazyMapExample {
    public static void main(String[] args) {
        Map<String, String> lazyMap = MapUtils.lazyMap(new HashMap<>(), () -> "Default Value");

        // নতুন কী-এর জন্য ডিফল্ট মান
        System.out.println("Value for Key1: " + lazyMap.get("Key1"));
    }
}

আউটপুট:

Value for Key1: Default Value

MapUtils এর সুবিধা

  1. কোড সংক্ষিপ্ত করে: কমন অপারেশন যেমন ডিফল্ট ভ্যালু, রিভার্স ম্যাপ, এবং ইটারেশন সহজ করে।
  2. নালপয়েন্টার এড়ায়: null চেক এবং ডিফল্ট মান সেট করার ফিচার আছে।
  3. Immutable এবং Lazy Map: নিরাপদ এবং কার্যকর ডেটা ম্যানিপুলেশনের জন্য বিশেষভাবে কার্যকর।
  4. Debugging Friendly: verbosePrint এবং debugPrint দ্রুত ডিবাগিং সহায়তা করে।

সারাংশ

MapUtils হল অ্যাপাচি কমন্স কালেকশনসের একটি শক্তিশালী ইউটিলিটি ক্লাস, যা ম্যাপ পরিচালনার কাজকে সহজ এবং কার্যকর করে তোলে। এটি বিশেষত ডিফল্ট মান প্রদান, Immutable ম্যাপ তৈরি, এবং ম্যাপের ইটারেশন বা প্রিন্টিংয়ের ক্ষেত্রে অত্যন্ত কার্যকর।

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

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

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

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