এই পোস্টে আমরা জাভাতে Iterator এবং Enumeration ইন্টারফেসের পার্থক্য বুঝব।
Iterator
- এটি একটি ইউনিভার্সাল কার্সর (universal cursor)।
- এটি সব কালেকশন ক্লাসে প্রয়োগ করা যায়।
- এতে 'remove' মেথড থাকে।
- এটি একটি লিগ্যাসি (legacy) ইন্টারফেস নয়।
- HashMap, LinkedList, ArrayList, HashSet, TreeMap, TreeSet-এ ট্রাভার্স করতে এটি ব্যবহার করা যায়।
- কলেকশন ট্রাভার্স করার সময় মডিফিকেশন করে অপারেশন করা যায়।
Enumeration
- এটি ইউনিভার্সাল কার্সর নয়।
- এটি শুধু লিগ্যাসি ক্লাসে প্রয়োগ করা যায়।
- এতে 'remove' মেথড নেই।
- এটি একটি লিগ্যাসি ইন্টারফেস।
- এই ইন্টারফেস রিড-অনলি (read-only) ইন্টারফেসের মতো কাজ করে।
- সুতরাং কলেকশন ট্রাভার্স করার সময় কোনো মডিফিকেশন করা যায় না।
- Vector এবং Hashtable-এ ট্রাভার্স করতে এটি ব্যবহার করা যায়।