Apache Commons Collections কি?

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) পরিচিতি |
125
125

Apache Commons Collections হল একটি ওপেন সোর্স লাইব্রেরি যা Java Collections Framework (JCF) এর উপর ভিত্তি করে অতিরিক্ত ডেটা স্ট্রাকচার এবং ইউটিলিটি ফাংশন সরবরাহ করে। এটি Java প্রোগ্রামিং ভাষায় ব্যবহৃত একটি খুবই জনপ্রিয় লাইব্রেরি যা ডেটা স্টোরেজ, ম্যানিপুলেশন এবং অ্যাক্সেস করার জন্য অতিরিক্ত কার্যকারিতা প্রদান করে।

১. Apache Commons Collections এর উদ্দেশ্য

Apache Commons Collections এর মূল উদ্দেশ্য হল Java Collections Framework এর সীমানা ছাড়িয়ে গিয়ে আরও কার্যকরী ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস প্রদান করা। Java Collections Framework মূলত List, Set, Map এবং Queue এ কাজ করে, তবে Apache Commons Collections Java-এর সাধারণ কালেকশনগুলোর মধ্যে অতিরিক্ত ক্ষমতা যোগ করে। এই লাইব্রেরিটি Bag, MultiMap, BidiMap, ListOrderedMap, LIFO/FIFO Queue ইত্যাদি নতুন ডেটা স্ট্রাকচার সরবরাহ করে যা Java Collections Framework-এ বিদ্যমান নেই।

২. Apache Commons Collections লাইব্রেরির সুবিধাসমূহ

  • নতুন এবং উন্নত ডেটা স্ট্রাকচার: Bag, MultiMap, BidiMap ইত্যাদি স্ট্রাকচারগুলি Java Collections Framework এ নেই। এই স্ট্রাকচারগুলি বেশিরভাগ ডেটা ম্যানিপুলেশন কাজকে সহজ করে।
  • সহজ ইউটিলিটি ক্লাস: লাইব্রেরিটি ডেটা স্ট্রাকচারগুলির উপর ইউটিলিটি ক্লাস সরবরাহ করে যেমন CollectionUtils, MapUtils, IteratorUtils, ইত্যাদি যা আপনাকে সাধারণ কালেকশন অপারেশনগুলি সহজে করতে সহায়তা করে।
  • অতিরিক্ত কার্যকারিতা: Java Collections Framework-এর বাইরে অতিরিক্ত কার্যকারিতা যেমন BidiMap এবং MultiMap সরবরাহ করে যা অনেক পরিস্থিতিতে ব্যবহার উপযোগী।
  • Java Collections Framework-এর সাথে সামঞ্জস্য: এটি Java Collections Framework (JCF) এর সাথে পূর্ণ সামঞ্জস্যপূর্ণ, অর্থাৎ আপনি এটি Java-এর স্ট্যান্ডার্ড কালেকশন টাইপের সাথে একত্রে ব্যবহার করতে পারবেন।

৩. Apache Commons Collections এর প্রধান বৈশিষ্ট্যসমূহ

Apache Commons Collections বিভিন্ন ধরনের কার্যকারিতা এবং ডেটা স্ট্রাকচার প্রদান করে, কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিম্নরূপ:

৩.১ Bag

Bag একটি বিশেষ ধরনের কালেকশন যা উপাদানগুলির উপস্থিতি সংখ্যা সংরক্ষণ করে। এর মানে হল যে, একটি উপাদান একাধিকবার থাকতে পারে।

উদাহরণ: Bag ক্লাস

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;

public class BagExample {
    public static void main(String[] args) {
        Bag<String> bag = new HashBag<>();
        bag.add("apple");
        bag.add("banana");
        bag.add("apple");

        System.out.println("Bag contents: " + bag);
        System.out.println("apple count: " + bag.getCount("apple"));
    }
}

এখানে:

  • HashBag হল Bag ইমপ্লিমেন্টেশন, যা উপাদানগুলির উপস্থিতি গণনা করে এবং getCount() ফাংশনটি নির্দিষ্ট উপাদানটির উপস্থিতির সংখ্যা প্রদর্শন করে।

৩.২ BidiMap

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

উদাহরণ: BidiMap ক্লাস

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.map.HashedMap;

public class BidiMapExample {
    public static void main(String[] args) {
        BidiMap<String, String> bidiMap = new HashedMap<>();
        bidiMap.put("apple", "fruit");
        bidiMap.put("carrot", "vegetable");

        System.out.println("apple is a " + bidiMap.get("apple"));
        System.out.println("fruit is a " + bidiMap.getKey("fruit"));
    }
}

এখানে:

  • HashedMap একটি BidiMap ইমপ্লিমেন্টেশন, যা কী এবং ভ্যালু উভয়ের জন্য মিউটেবল (bidirectional) এক্সেস সরবরাহ করে।
  • getKey() ফাংশনটি ভ্যালু থেকে কী বের করার সুযোগ দেয়।

৩.৩ MultiMap

MultiMap একটি ম্যাপ যেখানে প্রতিটি কী একাধিক ভ্যালুর সাথে সম্পর্কিত থাকে। এটি সাধারণত যখন আপনি একটি কী-এর জন্য একাধিক মানের প্রয়োজন হয়, তখন ব্যবহৃত হয়।

উদাহরণ: MultiMap ক্লাস

import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.MultiValueMap;

public class MultiMapExample {
    public static void main(String[] args) {
        MultiMap<String, String> multiMap = new MultiValueMap<>();
        multiMap.put("fruits", "apple");
        multiMap.put("fruits", "banana");
        multiMap.put("fruits", "orange");

        System.out.println("fruits: " + multiMap.get("fruits"));
    }
}

এখানে:

  • MultiValueMap একটি MultiMap ইমপ্লিমেন্টেশন, যা একই কী-এর জন্য একাধিক মান সংরক্ষণ করতে সক্ষম।
  • put() ফাংশনটি কী-এর সাথে একাধিক মান সংযুক্ত করে।

৩.৪ ListOrderedMap

ListOrderedMap একটি ম্যাপ যা তালিকার মতো আচরণ করে এবং উপাদানগুলি ইনসার্ট করা অর্ডারে সংরক্ষণ করে। এটি সাধারণভাবে অর্ডারযুক্ত ম্যাপের মতো কাজ করে।


৪. Apache Commons Collections ব্যবহারের সুবিধা

  • Java Collections Framework-এর বাইরে অতিরিক্ত ডেটা স্ট্রাকচার: Apache Commons Collections আপনাকে এমন ডেটা স্ট্রাকচার সরবরাহ করে যা Java Collections Framework-এ নেই।
  • সমৃদ্ধ ফিচার: এটি স্ট্যান্ডার্ড Java কালেকশন ফ্রেমওয়ার্কের সঙ্গে একত্রে ব্যবহার করা যেতে পারে এবং অতিরিক্ত কার্যকারিতা প্রদান করে।
  • নমনীয়তা: Apache Commons Collections-এ প্রচুর পরিমাণে ইউটিলিটি ক্লাস রয়েছে যা ডেটা ম্যানিপুলেশনকে আরও সহজ করে তোলে।
  • সহজে এক্সটেন্ডযোগ্য: আপনি Apache Commons Collections এর বিভিন্ন ক্লাস এবং ইন্টারফেসকে আপনার প্রয়োজনে কাস্টমাইজ এবং এক্সটেন্ড করতে পারেন।

৫. Apache Commons Collections ইনস্টলেশন

আপনি যদি Apache Commons Collections ব্যবহার করতে চান, তবে আপনাকে এটি আপনার প্রোজেক্টে যুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

এটি আপনার প্রোজেক্টে Apache Commons Collections লাইব্রেরি যুক্ত করবে।


সারাংশ

Apache Commons Collections একটি শক্তিশালী Java লাইব্রেরি যা Java Collections Framework-এর বাইরে অতিরিক্ত ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সরবরাহ করে। এতে Bag, BidiMap, MultiMap, ListOrderedMap, LIFO/FIFO Queue সহ উন্নত ডেটা স্ট্রাকচার রয়েছে, যা অনেক পরিস্থিতিতে কাজে আসে। এটি Java-এর স্ট্যান্ডার্ড কালেকশন ফ্রেমওয়ার্কের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ এবং ডেটা স্টোরেজ, ম্যানিপুলেশন এবং অ্যাক্সেসের জন্য অতিরিক্ত কার্যকারিতা প্রদান করে।

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

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

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

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