Java Generics এবং Apache Commons Collections

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) Apache Commons Collections এর সাথে Generics |
136
136

Java Generics এবং Apache Commons Collections একটি শক্তিশালী কম্বিনেশন, যা Java প্রোগ্রামিং ভাষায় কালেকশন ব্যবস্থাপনা এবং টাইপ সেফটিকে আরও উন্নত এবং সহজ করে তোলে। Generics হল Java এর একটি বৈশিষ্ট্য যা টাইপ সেফটি নিশ্চিত করে এবং কোডের পুনঃব্যবহারযোগ্যতা বাড়ায়। Apache Commons Collections লাইব্রেরি এই বৈশিষ্ট্যটি ব্যবহার করে বিভিন্ন উন্নত ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সরবরাহ করে, যা Java কালেকশন API এর বাইরের কিছু অতিরিক্ত কার্যক্ষমতা প্রদান করে।

এই টিউটোরিয়ালে, আমরা আলোচনা করব কিভাবে Java Generics এবং Apache Commons Collections একত্রে কাজ করে, এবং কিভাবে আপনি Generics ব্যবহার করে টাইপ সেফ কালেকশন তৈরি করতে পারেন।


১. Java Generics এর পরিচিতি

Generics হল Java এর একটি বৈশিষ্ট্য যা আপনাকে টাইপ নিরাপত্তা (type safety) বজায় রেখে একে অপরের সাথে সম্পর্কিত ডেটা টাইপের সাধারণ কোড লিখতে সহায়তা করে। এর মাধ্যমে আপনি Collection বা Map এর মতো ডেটা স্ট্রাকচারগুলিতে টাইপ নির্ধারণ করে সেগুলিকে ব্যবহার করতে পারেন। এর ফলে আপনি একই ডেটা স্ট্রাকচারগুলিতে বিভিন্ন ধরনের ডেটা টাইপ ব্যবহারের পরিবর্তে একটি নির্দিষ্ট টাইপের ডেটা সেভ এবং রিট্রিভ করতে পারেন।

উদাহরণ: Java Generics

import java.util.List;
import java.util.ArrayList;

public class GenericsExample {
    public static void main(String[] args) {
        // Create a List that holds only Strings
        List<String> stringList = new ArrayList<>();
        
        // Add items to the list
        stringList.add("apple");
        stringList.add("banana");
        
        // Retrieve items from the list
        System.out.println(stringList.get(0));  // Output: apple
    }
}

এখানে:

  • List<String> একটি জেনেরিক কালেকশন যা শুধুমাত্র String টাইপের উপাদান গ্রহণ করবে। এটি টাইপ সেফটি নিশ্চিত করে এবং কম্পাইল টাইমে ভুল টাইপের উপাদান প্রবেশ করার ক্ষেত্রে এরর দেয়।

২. Apache Commons Collections এবং Java Generics

Apache Commons Collections লাইব্রেরি Generics এর মাধ্যমে আরও শক্তিশালী এবং টাইপ সেফ ডেটা স্ট্রাকচার সরবরাহ করে। আপনি যখন Commons Collections ব্যবহার করবেন, তখন আপনি সহজেই Generics এর সুবিধা নিতে পারেন, যাতে টাইপ সেফ কালেকশন তৈরি এবং পরিচালনা করা সহজ হয়। এটি ডেটা ম্যানিপুলেশন এবং সংগ্রহ করার প্রক্রিয়াকে আরও শক্তিশালী এবং নির্ভরযোগ্য করে তোলে।

Commons Collections লাইব্রেরি Java এর স্ট্যান্ডার্ড Collections Framework এর বাইরের কিছু অতিরিক্ত ডেটা স্ট্রাকচার সরবরাহ করে, যেমন Bag, MultiMap, BidiMap, ইত্যাদি, যা জেনেরিক্সের সাথে ব্যবহৃত হলে আরও কার্যকরী হয়ে ওঠে।


৩. Generics এবং Apache Commons Collections এর বিভিন্ন ডেটা স্ট্রাকচার

এখানে কিছু উদাহরণ দেওয়া হলো যেখানে Apache Commons Collections এর ডেটা স্ট্রাকচার এবং Java Generics একসাথে ব্যবহৃত হচ্ছে।

৩.১. Bag (ব্যাগ)

Bag একটি বিশেষ ধরনের Collection যেখানে একটি আইটেম একাধিক বার উপস্থিত থাকতে পারে এবং তার উপস্থিতির সংখ্যা ট্র্যাক করা হয়। আপনি Generics ব্যবহার করে Bag তৈরি করতে পারেন, যা শুধুমাত্র একটি নির্দিষ্ট টাইপের উপাদান ধারণ করবে।

উদাহরণ: Generics সহ Bag ব্যবহার
import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;

public class BagExample {
    public static void main(String[] args) {
        // Create a Bag that holds only Strings
        Bag<String> bag = new HashBag<>();
        
        // Add items to the bag
        bag.add("apple");
        bag.add("banana");
        bag.add("apple");
        
        // Print the count of a specific item
        System.out.println("Count of apple: " + bag.getCount("apple"));  // Output: 2
    }
}

এখানে:

  • Bag<String> একটি টাইপ সেফ ডেটা স্ট্রাকচার যেখানে শুধুমাত্র String টাইপের উপাদান ধারণ করা হচ্ছে।
  • bag.getCount("apple") এর মাধ্যমে apple আইটেমটির উপস্থিতি গননা করা হয়েছে।

৩.২. MultiMap (মাল্টি ম্যাপ)

MultiMap হল একটি বিশেষ ধরনের Map যা একটি কী (key) এর সাথে একাধিক মান (value) সংরক্ষণ করতে সক্ষম। আপনি Generics ব্যবহার করে MultiMap তৈরি করতে পারেন, যেখানে একটি কী এর সাথে একাধিক মান সংরক্ষিত থাকে।

উদাহরণ: Generics সহ MultiMap ব্যবহার
import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.MultiValueMap;
import org.apache.commons.collections4.map.HashedMap;

public class MultiMapExample {
    public static void main(String[] args) {
        // Create a MultiMap that holds multiple phone numbers for each person
        MultiMap<String, String> phoneBook = new MultiValueMap<>();
        
        // Add phone numbers for John and Jane
        phoneBook.put("John", "123-456-7890");
        phoneBook.put("John", "987-654-3210");
        phoneBook.put("Jane", "555-555-5555");
        
        // Retrieve phone numbers for John
        System.out.println("Phone numbers for John: " + phoneBook.get("John"));
        
        // Retrieve phone numbers for Jane
        System.out.println("Phone numbers for Jane: " + phoneBook.get("Jane"));
    }
}

এখানে:

  • MultiMap<String, String> একটি টাইপ সেফ মাল্টি ম্যাপ তৈরি করে যা String টাইপের কী এবং মান গ্রহণ করে।
  • phoneBook.get("John") এর মাধ্যমে John এর সকল ফোন নম্বর বের করা হয়েছে।

৩.৩. BidiMap (বিডি ম্যাপ)

BidiMap হল একটি দ্বিমুখী ম্যাপ, যেখানে আপনি একটি কী থেকে মান এবং মান থেকে কী উভয় দিক থেকে অ্যাক্সেস করতে পারেন। জেনেরিক্স ব্যবহার করে আপনি BidiMap তৈরী করতে পারেন।

উদাহরণ: Generics সহ BidiMap ব্যবহার
import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.map.HashBidiMap;

public class BidiMapExample {
    public static void main(String[] args) {
        // Create a BidiMap to store key-value pairs
        BidiMap<String, String> bidiMap = new HashBidiMap<>();
        
        // Add key-value pairs
        bidiMap.put("one", "1");
        bidiMap.put("two", "2");
        
        // Get value by key
        System.out.println(bidiMap.get("one"));  // Output: 1
        
        // Get key by value
        System.out.println(bidiMap.getKey("2"));  // Output: two
    }
}

এখানে:

  • BidiMap<String, String> একটি দ্বিমুখী ম্যাপ তৈরি করে, যা String টাইপের কী এবং মান ধারণ করে।

৪. Generics সহ CollectionUtils ব্যবহার করা

CollectionUtils ক্লাস অ্যাপাচি কমন্স কালেকশনস লাইব্রেরির একটি গুরুত্বপূর্ণ অংশ, যা বিভিন্ন ইউটিলিটি ফাংশন সরবরাহ করে। Generics এর মাধ্যমে আপনি CollectionUtils ব্যবহার করে বিভিন্ন ধরনের কালেকশন (যেমন List, Set, Map, ইত্যাদি) প্রক্রিয়া করতে পারেন।

উদাহরণ: CollectionUtils সহ Generics ব্যবহার

import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
import java.util.ArrayList;

public class CollectionUtilsExample {
    public static void main(String[] args) {
        // Create a list of strings
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        
        // Check if a certain element exists in the list
        boolean containsApple = CollectionUtils.isNotEmpty(list) && CollectionUtils.containsAny(list, "apple");
        
        System.out.println("List contains 'apple': " + containsApple);  // Output: true
    }
}

এখানে:

  • CollectionUtils.containsAny(list, "apple") ব্যবহার করে আমরা যাচাই করেছি যে list তে "apple" উপাদানটি আছে কি না।

সারাংশ

Java Generics এবং Apache Commons Collections একসাথে ব্যবহার করে আপনি টাইপ সেফ ডেটা স্ট্রাকচার তৈরি করতে পারেন, যা ডেটা ম্যানিপুলেশনকে আরও শক্তিশালী এবং সহজ করে তোলে। Generics ব্যবহার করে আপনি টাইপ নির্ধারণ করে নিরাপদভাবে ডেটা সংগ্রহ এবং প্রক্রিয়া করতে পারেন, আর Commons Collections লাইব্রেরি বিভিন্ন উন্নত ডেটা স্ট্রাকচার (যেমন Bag, MultiMap, BidiMap) সরবরাহ করে যা ডেটা পরিচালনাকে আরও সহজ এবং কার্যকরী করে তোলে।

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

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

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

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