Bag হল অ্যাপাচি কমন্স কালেকশনস (Apache Commons Collections) লাইব্রেরির একটি ডেটা স্ট্রাকচার, যা একটি কালেকশনে আইটেমগুলোর সংখ্যা বা ফ্রিকোয়েন্সি ট্র্যাক করে। সাধারণ Set
বা List
এর বিপরীতে, একটি Bag
প্রতিটি উপাদানের সাথে তার উপস্থিতির সংখ্যাটি সংরক্ষণ করে।
মূল বৈশিষ্ট্য:
অ্যাপাচি কমন্স কালেকশনস এ বেশ কয়েকটি ক্লাস রয়েছে যা Bag ইন্টারফেস ইমপ্লিমেন্ট করে:
import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
public class BagExample {
public static void main(String[] args) {
// HashBag তৈরি
Bag<String> bag = new HashBag<>();
// আইটেম যোগ করা
bag.add("Apple");
bag.add("Banana", 2); // দুইবার Banana যোগ করা
bag.add("Orange");
// প্রতিটি আইটেমের ফ্রিকোয়েন্সি দেখা
System.out.println("Apple count: " + bag.getCount("Apple")); // আউটপুট: 1
System.out.println("Banana count: " + bag.getCount("Banana")); // আউটপুট: 2
// সব আইটেম দেখা
System.out.println("Bag elements: " + bag);
// একটি আইটেম সরানো
bag.remove("Banana");
System.out.println("Updated Bag elements: " + bag);
}
}
আউটপুট:
Apple count: 1
Banana count: 2
Bag elements: [1:Apple, 2:Banana, 1:Orange]
Updated Bag elements: [1:Apple, 1:Banana, 1:Orange]
Bag এমন ক্ষেত্রে ব্যবহার করা হয় যেখানে ডেটার ফ্রিকোয়েন্সি ট্র্যাক করতে হবে। যেমন:
Bag এমন পরিস্থিতিতে কার্যকর যেখানে ডুপ্লিকেট ডেটা সহজে পরিচালনা করতে হবে।
Bag ফ্রিকোয়েন্সি ডেটা বিশ্লেষণের জন্য উপকারী। উদাহরণস্বরূপ:
গেমের ইনভেন্টরি ব্যবস্থাপনা যেখানে একটি নির্দিষ্ট আইটেমের সংখ্যা প্রয়োজন।
TreeBag একটি Bag
যা আইটেমগুলোকে স্বাভাবিক ক্রমে (natural order) সাজিয়ে রাখে।
import org.apache.commons.collections4.bag.TreeBag;
public class TreeBagExample {
public static void main(String[] args) {
// TreeBag তৈরি
TreeBag<String> treeBag = new TreeBag<>();
// আইটেম যোগ করা
treeBag.add("Banana");
treeBag.add("Apple");
treeBag.add("Orange");
treeBag.add("Apple");
// সাজানো আইটেম
System.out.println("Sorted Bag: " + treeBag);
}
}
আউটপুট:
Sorted Bag: [2:Apple, 1:Banana, 1:Orange]
Bag একটি কার্যকর ডেটা স্ট্রাকচার যা ডেটার ফ্রিকোয়েন্সি বা সংখ্যা পরিচালনা করতে ব্যবহৃত হয়। এটি ডুপ্লিকেট ডেটার ব্যবস্থাপনা সহজ করে এবং বিভিন্ন ব্যবহারিক ক্ষেত্রে, যেমন ডেটা এনালাইসিস, ইনভেন্টরি ম্যানেজমেন্ট, এবং গেম ডেভেলপমেন্টে, অত্যন্ত কার্যকর।
common.read_more