ইটারেটর ব্যবহার

কালেকশন ফ্রেমওয়ার্ক - জাভা প্রোগ্রামিং (Java Programming) - Computer Programming

366

ইটারেটর (Iterator) হলো Java Collections Framework এর একটি ইন্টারফেস, যা কালেকশনের উপাদানগুলোর উপর একের পর এক অ্যাক্সেস করতে সাহায্য করে। Iterator ব্যবহার করে একটি কালেকশনের প্রতিটি এলিমেন্ট একবার করে অ্যাক্সেস করা যায়, যা সাধারণত লিস্ট, সেট, এবং ম্যাপ এর উপাদানগুলোর জন্য ব্যবহার করা হয়।


কেন ইটারেটর প্রয়োজন?

  1. ক্রমানুসারে ডেটা অ্যাক্সেস: কালেকশনের প্রতিটি উপাদানে ক্রমানুসারে অ্যাক্সেস পাওয়া যায়।
  2. তথ্য মুছে ফেলা: Iterator ব্যবহার করে কোন কালেকশন থেকে ডেটা মুছে ফেলা যায়।
  3. কোড মডুলার এবং সহজ করা: Iterator ব্যবহার করে কালেকশনের সাথে লুপিং সহজ হয় এবং কোড আরও সহজবোধ্য হয়।

Iterator এর প্রধান মেথড

  1. hasNext(): পরবর্তী উপাদান আছে কি না তা যাচাই করে এবং true বা false রিটার্ন করে।
  2. next(): পরবর্তী উপাদানে চলে যায় এবং সেই উপাদানটি রিটার্ন করে।
  3. remove(): বর্তমান উপাদানটি মুছে ফেলে।

Iterator ব্যবহার করে উদাহরণ

উদাহরণ ১: ArrayList এর উপর ইটারেটর ব্যবহার

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

public class IteratorExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        Iterator<String> iterator = names.iterator();

        System.out.println("Names List:");
        while (iterator.hasNext()) {
            String name = iterator.next();
            System.out.println(name);
        }
    }
}

আউটপুট:

Names List:
Alice
Bob
Charlie

ব্যাখ্যা:

  • এখানে ArrayListnames নামের লিস্ট তৈরি করা হয়েছে।
  • names.iterator() দিয়ে Iterator তৈরি করা হয়েছে, যা names লিস্টের প্রতিটি উপাদানকে একে একে অ্যাক্সেস করতে পারবে।
  • while লুপে hasNext() মেথড দিয়ে পরবর্তী উপাদান আছে কিনা যাচাই করা হয়েছে এবং next() মেথড দিয়ে উপাদানগুলো প্রিন্ট করা হয়েছে।

উদাহরণ ২: Set এর উপর ইটারেটর ব্যবহার

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class IteratorSetExample {
    public static void main(String[] args) {
        Set<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);

        Iterator<Integer> iterator = numbers.iterator();

        System.out.println("Numbers Set:");
        while (iterator.hasNext()) {
            int number = iterator.next();
            System.out.println(number);
        }
    }
}

আউটপুট:

Numbers Set:
1
2
3

ব্যাখ্যা:

  • এখানে HashSetnumbers নামের একটি সেট তৈরি করা হয়েছে।
  • numbers.iterator() দিয়ে Iterator তৈরি করা হয়েছে, যা সেটের প্রতিটি উপাদানকে অ্যাক্সেস করতে পারবে।
  • while লুপে hasNext() এবং next() মেথড ব্যবহার করে প্রতিটি উপাদান প্রিন্ট করা হয়েছে।

উদাহরণ ৩: ইটারেটর ব্যবহার করে উপাদান মুছে ফেলা

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

public class RemoveWithIterator {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        Iterator<String> iterator = names.iterator();

        while (iterator.hasNext()) {
            String name = iterator.next();
            if (name.equals("Bob")) {
                iterator.remove(); // "Bob" মুছে ফেলা হবে
            }
        }

        System.out.println("Names List after removal: " + names);
    }
}

আউটপুট:

Names List after removal: [Alice, Charlie]

ব্যাখ্যা:

  • iterator.remove() মেথড ব্যবহার করে Bob উপাদানটি মুছে ফেলা হয়েছে।
  • ইটারেটর ব্যবহার করে সরাসরি কালেকশন থেকে কোনো উপাদান মুছে ফেলা নিরাপদ এবং কার্যকর।

ফর-ইচ লুপ বনাম ইটারেটর

Java তে ফর-ইচ লুপও কালেকশনের উপাদান অ্যাক্সেস করতে ব্যবহৃত হয়। তবে, ইটারেটরের মাধ্যমে উপাদান মুছে ফেলা যায়, যা ফর-ইচ লুপে সম্ভব নয়। ফলে ইটারেটর জটিল কাজের জন্য আরও কার্যকর।

উদাহরণ: ফর-ইচ লুপ ব্যবহার

List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");

for (String name : names) {
    System.out.println(name);
}

ব্যাখ্যা: ফর-ইচ লুপ ব্যবহার করে সহজে কালেকশনের প্রতিটি উপাদান অ্যাক্সেস করা সম্ভব। তবে, ফর-ইচ লুপে remove অপারেশন সাপোর্ট করে না, যা ইটারেটর দিয়ে করা যায়।


সারসংক্ষেপ

  • Iterator হলো কালেকশনের উপাদান একবারে একবার অ্যাক্সেস করতে ব্যবহৃত একটি ইন্টারফেস।
  • এর hasNext(), next(), এবং remove() মেথডের মাধ্যমে উপাদান ক্রমানুসারে অ্যাক্সেস করা যায় এবং প্রয়োজনে সরানো যায়।
  • ফর-ইচ লুপের তুলনায় ইটারেটর আরও নমনীয়, কারণ এটি সরাসরি উপাদান মুছে ফেলতে পারে।

Java Collections Framework এ ইটারেটর ব্যবহার করে প্রোগ্রামিং সহজ, কার্যকর এবং নির্ভরযোগ্য করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...