অ্যাপাচি কমন্স কালেকশনস (Apache Commons Collections) লাইব্রেরিতে MapUtils ক্লাস বিভিন্ন ধরণের ম্যাপ (Map) পরিচালনা সহজ করে। এটি সাধারণ Map অপারেশন যেমন ইটারেশন, ডিফল্ট মান সেট করা, বা রিভার্স ম্যাপ তৈরির জন্য উন্নত ফিচার সরবরাহ করে।
Map এর উপর ইটারেশন করা জাভার সাধারণ পদ্ধতি হলেও অ্যাপাচি কমন্সের MapUtils এটি আরও সহজ এবং কার্যকর করে তোলে।
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.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
কখনো কখনো 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
}
}
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}
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 থ্রো করবে
}
}
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
null
চেক এবং ডিফল্ট মান সেট করার ফিচার আছে।verbosePrint
এবং debugPrint
দ্রুত ডিবাগিং সহায়তা করে।MapUtils হল অ্যাপাচি কমন্স কালেকশনসের একটি শক্তিশালী ইউটিলিটি ক্লাস, যা ম্যাপ পরিচালনার কাজকে সহজ এবং কার্যকর করে তোলে। এটি বিশেষত ডিফল্ট মান প্রদান, Immutable ম্যাপ তৈরি, এবং ম্যাপের ইটারেশন বা প্রিন্টিংয়ের ক্ষেত্রে অত্যন্ত কার্যকর।
common.read_more