গুয়াভা (Guava) লাইব্রেরিতে অনেক ইউটিলিটি ক্লাস রয়েছে যা Java প্রোগ্রামিং ভাষায় উন্নত ডেটা স্ট্রাকচার এবং কার্যকারিতা প্রদান করে। Table এবং BiMap দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা বিশেষ ক্ষেত্রে অত্যন্ত কার্যকর। এই ক্লাসগুলো ব্যবহার করে আপনি আরও সহজ এবং দ্রুতভাবে ডেটা পরিচালনা করতে পারবেন।
Table এর ব্যবহার
Table হল একটি ডেটা স্ট্রাকচার যা একটি "Row" এবং "Column" ভিত্তিক কন্টেইনার হিসাবে কাজ করে। এটি মূলত একটি মাল্টি-ডাইমেনশনাল ম্যাপের মতো কাজ করে, যেখানে আপনার কাছে একটি Row এবং Column যুক্ত করার মাধ্যমে ডেটা সংরক্ষণ করা হয়। এটি Map<R, Map<C, V>> এর মতো দেখতে, যেখানে R হল রো, C হল কলাম এবং V হল ভ্যালু।
Table এর উদাহরণ
গুয়াভার Table ব্যবহার করে একটি উদাহরণ দেখি:
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
public class GuavaTableExample {
public static void main(String[] args) {
// Table তৈরি করা
Table<String, String, Integer> table = HashBasedTable.create();
// ডেটা যোগ করা
table.put("Row1", "Column1", 10);
table.put("Row1", "Column2", 20);
table.put("Row2", "Column1", 30);
// ডেটা পড়া
System.out.println("Value at Row1, Column1: " + table.get("Row1", "Column1"));
System.out.println("Value at Row2, Column1: " + table.get("Row2", "Column1"));
// সমস্ত ডেটা আউটপুট
System.out.println("All rows and columns: " + table);
}
}
এই কোডে, Table<String, String, Integer> একটি টেবিল তৈরি করছে, যেখানে রো এবং কলাম হলো String, এবং ভ্যালু হলো Integer। এখানে HashBasedTable ব্যবহার করা হয়েছে, যা এক ধরনের টেবিল কনক্রিট ইমপ্লিমেন্টেশন।
Table এর সুবিধা
- দ্বি-মাত্রিক (2D) ডেটা স্টোরেজ: টেবিল ডেটা সহজে রো এবং কলামে গ্রুপ করে সংরক্ষণ করতে সহায়ক।
- দ্রুত অ্যাক্সেস: নির্দিষ্ট রো এবং কলামের মধ্যে দ্রুত ডেটা অ্যাক্সেস করা যায়।
BiMap এর ব্যবহার
BiMap হল একটি ডেটা স্ট্রাকচার যা দুটি ম্যাপের মতো কাজ করে, তবে এটি বিশেষভাবে দ্বৈত মান (bidirectional mapping) সমর্থন করে। এটি একটি কী থেকে ভ্যালু এবং ভ্যালু থেকে কী উভয় দিকে ম্যাপিং করার সুবিধা দেয়। BiMap এর মাধ্যমে, আপনি উল্টো মানও খুঁজে পেতে পারেন, যা সাধারণত অন্য ম্যাপের মাধ্যমে করা সম্ভব নয়।
BiMap এর উদাহরণ
গুয়াভার BiMap ব্যবহার করার উদাহরণ:
import com.google.common.collect.HashBiMap;
import com.google.common.collect.BiMap;
public class GuavaBiMapExample {
public static void main(String[] args) {
// BiMap তৈরি করা
BiMap<String, Integer> biMap = HashBiMap.create();
// ডেটা যোগ করা
biMap.put("One", 1);
biMap.put("Two", 2);
biMap.put("Three", 3);
// সাধারণ মান খোঁজা
System.out.println("Value for 'One': " + biMap.get("One"));
// উল্টো মান খোঁজা
System.out.println("Key for 2: " + biMap.inverse().get(2));
// সমস্ত ডেটা আউটপুট
System.out.println("BiMap contents: " + biMap);
}
}
এখানে, BiMap<String, Integer> ব্যবহার করা হয়েছে, যেখানে কী হলো String এবং ভ্যালু হলো Integer। inverse() মেথডটি ব্যবহৃত হয়েছে, যা ভ্যালু থেকে কী পেতে সাহায্য করে।
BiMap এর সুবিধা
- দ্বৈত ম্যাপিং: একসাথে দুটি রিভার্স ম্যাপিং প্রদান করে, যেখানে আপনি কী থেকে ভ্যালু এবং ভ্যালু থেকে কী উভয় দিকে অ্যাক্সেস করতে পারেন।
- ডুপ্লিকেট রিভার্স ম্যাপিং এড়ানো:
BiMapএকে অপরের সাথে যুক্ত একক মান নিশ্চিত করে, অর্থাৎ একটি কী অথবা ভ্যালু শুধুমাত্র একবারই উপস্থিত থাকবে।
সারাংশ
গুয়াভা (Guava) লাইব্রেরির Table এবং BiMap ডেটা স্ট্রাকচারগুলি জাভাতে উন্নত ডেটা ম্যানিপুলেশন করতে অত্যন্ত কার্যকর। Table ব্যবহার করে আপনি মাল্টি-ডাইমেনশনাল ডেটা সঞ্চয় করতে পারেন, এবং BiMap ব্যবহার করে আপনি কী থেকে ভ্যালু এবং ভ্যালু থেকে কী উল্টোভাবে ম্যাপিং করতে পারেন। এই দুটি ডেটা স্ট্রাকচার আপনার প্রোগ্রামিং দক্ষতা বাড়িয়ে তুলতে এবং ডেটা পরিচালনা সহজ করে তুলতে সাহায্য করবে।
Read more