Apache Commons Collections লাইব্রেরি Java Collections Framework এর জন্য অনেক শক্তিশালী ইউটিলিটি ক্লাস এবং ফাংশন প্রদান করে। এর মধ্যে CollectionUtils.isEqualCollection এবং CollectionUtils.cardinalityMap দুটি গুরুত্বপূর্ণ ফাংশন রয়েছে, যা collections এর সাথে কাজ করার সময় বেশ কার্যকরী হতে পারে।
1. CollectionUtils.isEqualCollection
CollectionUtils.isEqualCollection ফাংশনটি দুটি Collection (যেমন List, Set, Bag, ইত্যাদি) এর সমানতা যাচাই করার জন্য ব্যবহৃত হয়। এই ফাংশনটি দেখে নেয় যে, দুটি কালেকশন একই উপাদান ধারণ করছে এবং প্রতিটি উপাদান একই সংখ্যায় আছে কিনা।
বৈশিষ্ট্য:
- এটি শুধুমাত্র উপাদানগুলির উপস্থিতি যাচাই করে, তবে তাদের অর্ডার (order) অথবা পুনরাবৃত্তি (duplicates) মনে রাখে না।
SetবাListএর ক্ষেত্রে যদি দুটি কালেকশন একে অপরের মতো উপাদান ধারণ করে তবে এটিtrueরিটার্ন করবে।
উদাহরণ: isEqualCollection ব্যবহার
import org.apache.commons.collections4.CollectionUtils;
import java.util.Arrays;
import java.util.List;
public class CollectionUtilsExample {
public static void main(String[] args) {
// দুটি List তৈরি করা
List<String> list1 = Arrays.asList("apple", "banana", "cherry");
List<String> list2 = Arrays.asList("banana", "cherry", "apple");
// দুটি Collection এর সমানতা যাচাই করা
boolean isEqual = CollectionUtils.isEqualCollection(list1, list2);
System.out.println("Are the collections equal? " + isEqual); // Output: true
}
}
আউটপুট:
Are the collections equal? true
এখানে:
- দুটি
List(list1এবংlist2) একই উপাদান ধারণ করছে, তবে তাদের অর্ডার আলাদা। CollectionUtils.isEqualCollection(list1, list2)এই দুটি Collection এর মধ্যে সমানতা যাচাই করেছে এবং এটিtrueরিটার্ন করেছে কারণ উপাদানগুলো সমান।
কিভাবে কাজ করে:
- অর্ডার এখানে গুরুত্বপূর্ণ নয়।
list1এবংlist2এর মধ্যে উপাদানগুলি সমান হলেও, তাদের অর্ডার ভিন্ন হতে পারে। CollectionUtils.isEqualCollectionশুধুমাত্র উপাদান এবং তাদের সংখ্যা যাচাই করে, যাতে অর্ডার বা পুনরাবৃত্তি গণনা হয় না।
2. CollectionUtils.cardinalityMap
cardinalityMap একটি ইউটিলিটি মেথড যা একটি Collection থেকে cardinality মানচিত্র তৈরি করে, অর্থাৎ, এটি একটি Map তৈরি করে যেখানে প্রতিটি উপাদান এবং তার উপস্থিতির সংখ্যা সংরক্ষিত থাকে।
বৈশিষ্ট্য:
- এটি একটি Map রিটার্ন করে, যেখানে কী হচ্ছে কালেকশনের উপাদান এবং মান হচ্ছে ঐ উপাদানের উপস্থিতির সংখ্যা।
- এটি বিশেষত তখন ব্যবহারী হতে পারে যখন আপনি জানাতে চান যে একটি নির্দিষ্ট উপাদান কতবার উপস্থিত রয়েছে।
উদাহরণ: cardinalityMap ব্যবহার
import org.apache.commons.collections4.CollectionUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class CollectionUtilsExample {
public static void main(String[] args) {
// একটি List তৈরি করা
List<String> list = Arrays.asList("apple", "banana", "apple", "cherry", "banana", "banana");
// cardinalityMap তৈরি করা
Map<String, Integer> cardinalityMap = CollectionUtils.cardinalityMap(list);
// cardinalityMap প্রিন্ট করা
System.out.println("Cardinality Map: " + cardinalityMap);
}
}
আউটপুট:
Cardinality Map: {apple=2, banana=3, cherry=1}
এখানে:
cardinalityMap(list)ফাংশনটি একটি Map তৈরি করেছে, যেখানে উপাদান এবং তাদের উপস্থিতির সংখ্যা সংরক্ষিত রয়েছে:"apple"২ বার,"banana"৩ বার,"cherry"১ বার।
কিভাবে কাজ করে:
- cardinalityMap একটি Collection এর উপাদানগুলি গণনা করে এবং তাদের সংখ্যা Map হিসেবে প্রদান করে।
- এটি Set বা List এর উপর কাজ করতে পারে এবং উপাদানগুলির উপস্থিতির সংখ্যা সঠিকভাবে ট্র্যাক করতে সক্ষম।
সারাংশ
CollectionUtils.isEqualCollection: দুটি Collection এর সমানতা যাচাই করে, যেখানকার উপাদান এবং সংখ্যা সমান থাকে, তবে তাদের অর্ডার বা পুনরাবৃত্তি (duplicates) যাচাই করা হয় না।CollectionUtils.cardinalityMap: একটি Collection থেকে cardinality map তৈরি করে, যেখানে প্রতিটি উপাদান এবং তার উপস্থিতির সংখ্যা সংরক্ষিত থাকে। এটি কোনো List বা Set এ উপাদানের উপস্থিতি গণনা করার জন্য ব্যবহৃত হয়।
এই দুটি ফাংশন Apache Commons Collections লাইব্রেরির অন্যতম শক্তিশালী ইউটিলিটি, যা Collection সম্পর্কিত কাজগুলো সহজ, কার্যকরী এবং আরও নির্ভুল করে তোলে।
Read more