একটি পুনরাবৃত্তিযোগ্য ইন্টারফেস java.lang প্যাকেজ-এ সংজ্ঞায়িত করা হয়েছে এবং জাভা 5 সংস্করণ এর সাথে প্রবর্তন করা হয়েছে . একটি বস্তু যা এই ইন্টারফেসটি প্রয়োগ করে সেটিকে "প্রতিটির জন্য লক্ষ্য হতে দেয় " বিবৃতি৷ এই প্রতিটির জন্য ৷ লুপ অ্যারে এবং সংগ্রহের উপর পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। একটি পুনরাবৃত্তিযোগ্য কাস্টম আচরণ তৈরি করতে ইন্টারফেসও প্রয়োগ করা যেতে পারে।
সিনট্যাক্স
public interface Iterable<T>
উদাহরণ
import static java.lang.String.format; import java.util.*; // Person class class Person { private String firstName, lastName; private int age; public Person(){ } public Person(String firstName, String lastName, int age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public int getAge() { return age; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setAge(int age) { this.age = age; } @Override public String toString() { return format("First Name:\t%s\tLast Name:\t%s\tAge:\t%d", firstName, lastName, age); } } // PersonArrayList class public class PersonArrayList implements Iterable<Person> { private List<Person> persons; private static final int MIN_AGE = 10; public PersonArrayList() { persons = new ArrayList<Person>(MIN_AGE); } public PersonArrayList(int age) { persons = new ArrayList<Person>(age); } public void addPerson(Person p) { persons.add(p); } public void removePerson(Person p) { persons.remove(p); } public int age() { return persons.size(); } @Override public Iterator<Person> iterator() { return persons.iterator(); } public static void main(String[] args) { Person p1 = new Person("Adithya", "Sai", 20); Person p2 = new Person("Jai","Dev", 30); PersonArrayList pList = new PersonArrayList(); pList.addPerson(p1); pList.addPerson(p2); for (Person person : pList) { System.out.println(person); } } }
আউটপুট
First Name: Adithya Last Name: Sai Age: 20 First Name: Jai Last Name: Dev Age: 30