Collection Framework এর ভূমিকা

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

Apache Commons Collections একটি Java লাইব্রেরি যা Java Collections Framework (JCF) এর উপর ভিত্তি করে তৈরি। এই লাইব্রেরি মূলত Java Collections Framework এর সক্ষমতাকে বৃদ্ধি করার জন্য ডিজাইন করা হয়েছে। এটি অতিরিক্ত collections এবং utility ক্লাস সরবরাহ করে যা JCF-এ অন্তর্ভুক্ত নয়।

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

১. Collection Framework এর ভূমিকা

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

Collection Framework এর প্রধান লক্ষ্য:

  • ডেটা সংগঠনের স্ট্যান্ডার্ড পদ্ধতি প্রদান: JCF ডেটার মধ্যে সংগঠন এবং অ্যাক্সেস করার জন্য স্ট্যান্ডার্ড ইন্টারফেস এবং ক্লাস সরবরাহ করে।
  • ডেটার উপরে কার্যক্রম সম্পাদন সহজ করা: আপনি add(), remove(), contains(), size() ইত্যাদি সাধারণ কার্যাবলী জাভা কালেকশনের সাথে সরাসরি করতে পারেন।

Collection Framework এর প্রধান উপাদান:

  1. Collection Interface: এটি Set, List, এবং Queue এর মূল ইন্টারফেস।
  2. List Interface: এটি সিকোয়েন্সিয়াল ডেটা সংগ্রহের জন্য ব্যবহৃত হয়, যেমন অ্যারে লিস্ট এবং লিঙ্কড লিস্ট।
  3. Set Interface: এটি এমন একটি সংগ্রহ যেখানে কোন ডুপ্লিকেট উপাদান থাকতে পারে না।
  4. Map Interface: এটি কীগুলির মানের (key-value pairs) সংগ্রহ।
  5. Queue Interface: এটি একটি FIFO (First In First Out) সংগ্রহ, সাধারণত Queue এবং Deque

২. Apache Commons Collections এর ভূমিকা

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

Apache Commons Collections ফ্রেমওয়ার্কের সুবিধা:

  1. অতিরিক্ত ডেটা স্ট্রাকচার: Apache Commons Collections নতুন এবং শক্তিশালী ডেটা স্ট্রাকচার সরবরাহ করে যেমন BidiMap, MultiMap, Bag, Queue, এবং আরও অনেক কিছু।
  2. ডেকোরেটর প্যাটার্ন: Collections এর উপর অতিরিক্ত কার্যকারিতা (যেমন সিঙ্ক্রোনাইজেশন, ইমিউটেবিলিটি) যোগ করতে decorators প্রদান করে।
  3. ফিল্টারিং এবং ট্রান্সফরমিং: Transformer এবং Filter ক্লাস ব্যবহার করে ডেটা পরিবর্তন বা ফিল্টার করার সুবিধা দেয়।
  4. সহজ ইটারেশন এবং ফাংশনাল স্টাইল: Iterator এবং Iterable ইনটারফেসগুলোকে আরো কার্যকর এবং ফাংশনাল স্টাইল ব্যবহার করার জন্য সহায়ক ক্লাস প্রদান করে।

৩. Apache Commons Collections এর প্রধান উপাদান

  1. Bag:
    • Bag একটি বিশেষ ধরনের collection যা ডুপ্লিকেট আইটেম সমর্থন করে এবং কোন নির্দিষ্ট আইটেম কতবার উপস্থিত তা ট্র্যাক করে। এটি Set এর মতো, তবে ডুপ্লিকেট আইটেম থাকে।
    • উদাহরণ:

      import org.apache.commons.collections4.Bag;
      import org.apache.commons.collections4.bag.HashBag;
      
      Bag<String> bag = new HashBag<>();
      bag.add("apple");
      bag.add("apple");
      bag.add("banana");
      
      System.out.println(bag);  // Output: [apple x 2, banana x 1]
      
  2. BidiMap:
    • BidiMap হল একটি বিশেষ ধরনের Map যা উভয় দিক থেকে key এবং value অ্যাক্সেস করার সুবিধা দেয়। অর্থাৎ, আপনি শুধু key দিয়ে মান পেতে পারেন, বরং মান দিয়ে সেই key পেতেও পারেন।
    • উদাহরণ:

      import org.apache.commons.collections4.BidiMap;
      import org.apache.commons.collections4.map.HashBidiMap;
      
      BidiMap<String, String> bidiMap = new HashBidiMap<>();
      bidiMap.put("one", "1");
      bidiMap.put("two", "2");
      
      System.out.println(bidiMap.get("one"));  // Output: 1
      System.out.println(bidiMap.getKey("2")); // Output: two
      
  3. MultiMap:
    • MultiMap একটি বিশেষ ধরনের Map যেখানে একাধিক মান একই কী এর জন্য সংরক্ষিত হতে পারে।
    • উদাহরণ:

      import org.apache.commons.collections4.MultiMap;
      import org.apache.commons.collections4.map.MultiValueMap;
      
      MultiMap<String, String> multiMap = new MultiValueMap<>();
      multiMap.put("apple", "fruit");
      multiMap.put("apple", "red");
      multiMap.put("banana", "fruit");
      
      System.out.println(multiMap);  // Output: {apple=[fruit, red], banana=[fruit]}
      
  4. Queue:
    • Queue হল একটি FIFO (First In First Out) ডেটা স্ট্রাকচার যা Queue ইন্টারফেসে ডিফাইন করা থাকে। এটি ডেটার ব্যবস্থাপনা প্রক্রিয়াকে সহজ করে তোলে যেখানে আপনি ইনপুট এবং আউটপুট অর্ডার বজায় রাখতে চান।
    • উদাহরণ:

      import org.apache.commons.collections4.Queue;
      import org.apache.commons.collections4.queue.CircularFifoQueue;
      
      Queue<String> queue = new CircularFifoQueue<>(3);
      queue.add("apple");
      queue.add("banana");
      queue.add("cherry");
      
      System.out.println(queue);  // Output: [apple, banana, cherry]
      
      queue.add("date");
      System.out.println(queue);  // Output: [banana, cherry, date]
      
  5. IteratorUtils:
    • IteratorUtils হল Iterator এর বিভিন্ন অপারেশন যেমন filtering, transforming, এবং mapping ইত্যাদি সহায়তা করে। এটি ইনটারফেস এবং কোলেকশনের উপরে কাজ করার জন্য সহজ API প্রদান করে।
    • উদাহরণ:

      import org.apache.commons.collections4.IteratorUtils;
      import java.util.Arrays;
      import java.util.List;
      import java.util.Iterator;
      
      List<String> list = Arrays.asList("apple", "banana", "cherry");
      Iterator<String> iterator = list.iterator();
      
      // Filtering
      Iterator<String> filteredIterator = IteratorUtils.filteredIterator(iterator, item -> item.startsWith("b"));
      while(filteredIterator.hasNext()) {
          System.out.println(filteredIterator.next());  // Output: banana
      }
      

৪. Apache Commons Collections এবং Java Collections Framework এর মধ্যে সম্পর্ক

  • Java Collections Framework (JCF) একটি স্ট্যান্ডার্ড লাইব্রেরি যা শুধুমাত্র কিছু সাধারণ ডেটা স্ট্রাকচার (যেমন List, Set, Map) সরবরাহ করে।
  • Apache Commons Collections এই ফ্রেমওয়ার্কের উপর অতিরিক্ত ডেটা স্ট্রাকচার এবং ফিচার প্রদান করে, যেমন Bag, BidiMap, MultiMap, এবং Queue
  • Commons Collections Java Collections Framework এর উপর ভিত্তি করে তৈরি হলেও এটি আরও অনেক উন্নত এবং কাস্টমাইজড ডেটা স্ট্রাকচার সরবরাহ করে, যা JCF এর মধ্যে অন্তর্ভুক্ত নয়।

সারাংশ

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

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

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

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

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