Apache Commons Collections লাইব্রেরিটি Java Collections Framework এর উপর ভিত্তি করে একাধিক অতিরিক্ত ডাটা স্ট্রাকচার এবং ইউটিলিটি প্রদান করে, যা সাধারণ কালেকশনগুলির উপর কার্যক্রম সহজতর করে। এর মধ্যে একটি শক্তিশালী ক্লাস হল IteratorUtils, যা Iterator এর সাথে কাজ করার জন্য একটি সেট অব ফাংশন প্রদান করে।
IteratorUtils ক্লাস ব্যবহার করে আপনি Java এর Iterator থেকে সহজে মান বের করতে, সংগ্রহ করতে, এবং অন্যান্য কার্যক্রম সম্পাদন করতে পারেন। এই ক্লাসটি Iterator এর সাথে সম্পর্কিত কার্যক্রমকে অনেক বেশি নমনীয় এবং কার্যকরী করে তোলে।
IteratorUtils Overview
IteratorUtils ক্লাসটি Apache Commons Collections এর একটি ইউটিলিটি ক্লাস, যা Iterator ব্যবহারের জন্য অনেক সহায়ক মেথড সরবরাহ করে। এই ক্লাসটির সাহায্যে আপনি একটি Iterator এর উপাদানকে বিভিন্ন পদ্ধতিতে প্রসেস করতে পারবেন, যেমন ইটেরেট করা, ফিল্টার করা, এবং ট্রান্সফর্ম করা।
IteratorUtils এর প্রধান ফিচারসমূহ:
- Iterator to Collection:
- আপনি একটি Iterator এর মাধ্যমে একটি Collection তৈরি করতে পারেন।
- Iterator Traversal:
- Iterator এর উপাদানগুলি ট্রাভার্স করা, যা সাধারণভাবে
while (iterator.hasNext())ব্যবহারের চেয়ে সহজ এবং সরল হয়।
- Iterator এর উপাদানগুলি ট্রাভার্স করা, যা সাধারণভাবে
- Iterator Transformation:
- Iterator এর উপাদানগুলিকে একটি নতুন ফরম্যাটে রূপান্তর করতে পারবেন।
- Iterator Filtering:
- Iterator এর উপাদানগুলির মধ্যে নির্দিষ্ট শর্তাবলী মেনে ফিল্টারিং করতে পারবেন।
IteratorUtils এর কিছু গুরুত্বপূর্ণ মেথড:
toList():
- এই মেথডটি একটি Iterator এর উপাদানগুলোকে একটি List-এ রূপান্তর করে দেয়।
Iterator<String> iterator = Arrays.asList("apple", "banana", "cherry").iterator(); List<String> list = IteratorUtils.toList(iterator); System.out.println(list); // Output: [apple, banana, cherry]toArray():
- এই মেথডটি Iterator থেকে উপাদান সংগ্রহ করে একটি Array তৈরি করে।
Iterator<Integer> iterator = Arrays.asList(1, 2, 3, 4).iterator(); Integer[] array = IteratorUtils.toArray(iterator, Integer.class); System.out.println(Arrays.toString(array)); // Output: [1, 2, 3, 4]filter():
- এই মেথডটি একটি Iterator থেকে উপাদান ফিল্টার করতে সাহায্য করে, যেখানে একটি Predicate ব্যবহার করা হয়।
Iterator<String> iterator = Arrays.asList("apple", "banana", "cherry").iterator(); Iterator<String> filteredIterator = IteratorUtils.filteredIterator(iterator, new Predicate<String>() { @Override public boolean evaluate(String item) { return item.startsWith("a"); // Only items starting with "a" } }); while (filteredIterator.hasNext()) { System.out.println(filteredIterator.next()); } // Output: appletransform():
- এই মেথডটি একটি Iterator এর উপাদানকে ট্রান্সফর্ম করে একটি নতুন Iterator তৈরি করতে ব্যবহৃত হয়।
Iterator<String> iterator = Arrays.asList("apple", "banana", "cherry").iterator(); Iterator<String> transformedIterator = IteratorUtils.transformedIterator(iterator, new Transformer<String, String>() { @Override public String transform(String input) { return input.toUpperCase(); // Convert each element to uppercase } }); while (transformedIterator.hasNext()) { System.out.println(transformedIterator.next()); } // Output: APPLE, BANANA, CHERRYemptyIterator():
- একটি খালি Iterator ফেরত দেয়। যখন আপনি এমন Iterator চান যা কোনো উপাদান ধারণ করে না, তখন এটি উপকারী হতে পারে।
Iterator<String> emptyIterator = IteratorUtils.emptyIterator(); System.out.println(emptyIterator.hasNext()); // Output: false
Collection Iteration Using IteratorUtils
IteratorUtils শুধুমাত্র Iterator ব্যবহারের জন্যই নয়, Collection Iteration এর জন্যও খুব কার্যকরী। এটি Collection এর উপাদানগুলির উপর সহজেই কার্যক্রম সম্পাদন করার জন্য Iterator তৈরি করতে সহায়তা করে, এবং এতে কোনো পদ্ধতি ব্যবহার করা ছাড়াও foreach বা for-each loop ব্যবহার করতে পারেন।
Collection Iteration Example:
List<String> fruits = Arrays.asList("apple", "banana", "cherry");
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
}
// Output: apple, banana, cherry
এখানে, iterator.next() পদ্ধতির মাধ্যমে আমরা Collection এর সব উপাদান ভ্রমণ (traverse) করেছি।
Collection Iteration with Filtering and Transformation
IteratorUtils দিয়ে আপনি Collection এর উপাদানগুলিকে ফিল্টার করতে বা ট্রান্সফর্ম করতে পারেন, যাতে আপনি আপনার প্রয়োজনীয় ডাটা বের করতে পারেন।
Example of Filtering a Collection:
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "avocado");
Iterator<String> iterator = IteratorUtils.filteredIterator(fruits.iterator(), new Predicate<String>() {
public boolean evaluate(String fruit) {
return fruit.startsWith("a");
}
});
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// Output: apple, avocado
এখানে:
IteratorUtils.filteredIteratorব্যবহার করে Collection এর উপাদানগুলির মধ্যে শুধু "a" দিয়ে শুরু হওয়া ফলগুলি ফিল্টার করা হয়েছে।
Example of Transformation:
List<String> fruits = Arrays.asList("apple", "banana", "cherry");
Iterator<String> transformedIterator = IteratorUtils.transformedIterator(fruits.iterator(), new Transformer<String, String>() {
public String transform(String fruit) {
return fruit.toUpperCase(); // Convert to uppercase
}
});
while (transformedIterator.hasNext()) {
System.out.println(transformedIterator.next());
}
// Output: APPLE, BANANA, CHERRY
এখানে:
IteratorUtils.transformedIteratorব্যবহার করে Collection এর উপাদানগুলিকে ট্রান্সফর্ম করে সমস্ত ফলের নাম বড় অক্ষরে রূপান্তরিত করা হয়েছে।
সারাংশ
Apache Commons Collections এর IteratorUtils ক্লাস ব্যবহার করে আপনি সহজে Iterator এর মাধ্যমে Collection এর উপাদানগুলির উপর কার্যক্রম সম্পাদন করতে পারেন। এটি Iterator এর উপাদানগুলি ফিল্টার করা, ট্রান্সফর্ম করা, এবং আইটেম সংগ্রহ করার মতো কার্যক্রম সহজ করে তোলে। এর মাধ্যমে Collection Iteration আরও সহজ এবং কার্যকরী হয়ে ওঠে। IteratorUtils কালেকশনগুলির উপাদানগুলির উপর আরো জটিল ফিল্টারিং, ট্রান্সফরমেশন এবং সংগ্রহ কার্যক্রম বাস্তবায়ন করতে সাহায্য করে, যা Java Collections Framework এর মৌলিক কার্যক্রমের তুলনায় আরও কার্যকর।