Java Technologies ListIterator এর মাধ্যমে Bi-directional Iteration গাইড ও নোট

259

ListIterator হল Iterator ইন্টারফেসের একটি উপ-ইন্টারফেস যা List ইন্টারফেসের সঙ্গে কাজ করে এবং bi-directional iteration সমর্থন করে, অর্থাৎ এটি একটি List এর উপাদানগুলোকে forward এবং backward উভয় দিক দিয়ে ইটারেট (পুনঃপ্রবাহ) করতে পারে। সাধারণ Iterator শুধুমাত্র একটি দিক দিয়ে (ফরওয়ার্ড) ইটারেট করতে সক্ষম, কিন্তু ListIterator দুটি দিক দিয়ে চলতে পারে, যেমন আপনি একটি List এর প্রথম থেকে শেষ পর্যন্ত যেতে পারেন, অথবা শেষ থেকে প্রথম পর্যন্ত যেতে পারেন।

ListIterator শুধু List ইন্টারফেসের সাথে কাজ করে এবং এর বেশ কিছু অতিরিক্ত মেথড রয়েছে যা সাধারণ Iterator ইন্টারফেসে নেই। ListIterator সাধারণত ArrayList, LinkedList এবং অন্যান্য List ক্লাসের জন্য ব্যবহৃত হয়।

ListIterator Interface-এর প্রধান মেথড:

  1. hasNext():
    • পরবর্তী উপাদান আছে কিনা তা পরীক্ষা করে।
  2. next():
    • পরবর্তী উপাদান ফেরত দেয় এবং ইটারেটরকে পরবর্তী উপাদানে এগিয়ে নিয়ে যায়।
  3. hasPrevious():
    • পূর্ববর্তী উপাদান আছে কিনা তা পরীক্ষা করে।
  4. previous():
    • পূর্ববর্তী উপাদান ফেরত দেয় এবং ইটারেটরকে পূর্ববর্তী উপাদানে ফিরিয়ে নিয়ে যায়।
  5. nextIndex():
    • পরবর্তী উপাদানের ইনডেক্স ফেরত দেয়।
  6. previousIndex():
    • পূর্ববর্তী উপাদানের ইনডেক্স ফেরত দেয়।
  7. set(E e):
    • বর্তমান উপাদানটি পরিবর্তন করে এবং নতুন মান সেট করে।
  8. add(E e):
    • তালিকার বর্তমান অবস্থানে একটি নতুন উপাদান যোগ করে।

Bi-directional Iteration এর মাধ্যমে ListIterator ব্যবহার করা

এখানে একটি উদাহরণ দেয়া হলো যা ListIterator ব্যবহার করে একটি List এর উপাদানগুলোর ওপর bi-directional iteration দেখাবে। প্রথমে তালিকার উপাদানগুলির ওপর forward ইটারেশন হবে, তারপর backward ইটারেশন হবে।

উদাহরণ: Bi-directional Iteration with ListIterator

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

public class ListIteratorExample {
    public static void main(String[] args) {
        // একটি ArrayList তৈরি করা
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("Python");
        list.add("C++");
        list.add("JavaScript");

        // ListIterator এর মাধ্যমে forward iteration (আগে থেকে পিছনে)
        ListIterator<String> iterator = list.listIterator();
        
        System.out.println("Forward Iteration:");
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

        // ListIterator এর মাধ্যমে backward iteration (পেছনে থেকে আগে)
        System.out.println("\nBackward Iteration:");
        while (iterator.hasPrevious()) {
            System.out.println(iterator.previous());
        }
    }
}

Output:

Forward Iteration:
Java
Python
C++
JavaScript

Backward Iteration:
JavaScript
C++
Python
Java

ব্যাখ্যা:

  1. Forward Iteration:
    • প্রথমে ListIterator ব্যবহার করে তালিকার প্রথম থেকে শেষ পর্যন্ত উপাদানগুলির ওপর ইটারেশন করা হয়েছে। iterator.next() মেথডটি পরবর্তী উপাদানটি ফেরত দেয় এবং একে একে তালিকার সমস্ত উপাদান প্রদর্শিত হয়।
  2. Backward Iteration:
    • এরপর, ListIterator এর hasPrevious() এবং previous() মেথড ব্যবহার করে উপাদানগুলো পেছন থেকে সামনে ইটারেট করা হয়েছে। previous() মেথডটি পূর্ববর্তী উপাদানটি ফেরত দেয় এবং ইটারেটরকে পূর্ববর্তী উপাদানে নিয়ে যায়।

ListIterator এর সুবিধা:

  1. Bi-directional Iteration:
    • ListIterator শুধুমাত্র List ক্লাসের জন্য কাজ করে এবং এটি উপাদানগুলোকে forward এবং backward উভয় দিক দিয়ে ইটারেট করতে সক্ষম, যা Iterator এর জন্য সম্ভব নয়।
  2. Element Modification:
    • ListIterator এর মাধ্যমে আপনি set() মেথড ব্যবহার করে তালিকার একটি উপাদান পরিবর্তন করতে পারেন। এটি একটি গুরুত্বপূর্ণ ফিচার, যা সাধারণ Iterator দিয়ে সম্ভব নয়।
  3. Efficient Insertion:
    • ListIterator এর মাধ্যমে আপনি add() মেথড ব্যবহার করে তালিকার মধ্যে নতুন উপাদান যোগ করতে পারেন, যা Iterator তে করা সম্ভব নয়।
  4. Access Index:
    • ListIterator এর nextIndex() এবং previousIndex() মেথড ব্যবহার করে আপনি বর্তমানে যে উপাদানে আছেন তার ইনডেক্স জানতে পারেন।

ListIterator এবং Iterator এর মধ্যে পার্থক্য:

FeatureIteratorListIterator
Iteration DirectionOnly forward iterationForward and backward iteration
Element ModificationNot allowedAllows element modification using set()
Adding ElementsNot allowedAllows adding elements using add()
Index AccessNoAllows accessing current index using nextIndex() and previousIndex()
Supported CollectionCan iterate over any CollectionCan iterate over List only

ListIterator একটি শক্তিশালী ইন্টারফেস যা List কোলেকশনের উপাদানগুলোর ওপর bi-directional iteration করার জন্য ব্যবহৃত হয়। এটি শুধুমাত্র List ইন্টারফেসের বাস্তবায়নগুলির জন্য কাজ করে এবং forward এবং backward উভয় দিক থেকে উপাদান অ্যাক্সেস করার সুবিধা দেয়। এর মাধ্যমে আপনি উপাদান গুলি পরিবর্তন, যোগ এবং ইনডেক্স অ্যাক্সেস করতে পারবেন, যা সাধারণ Iterator দিয়ে সম্ভব নয়। ListIterator ব্যবহার করে আপনি একটি List এর সাথে আরও কার্যকরী এবং স্থিতিস্থাপকভাবে কাজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...