Có thể lặp lại giao diện được xác định trong gói java.lang và được giới thiệu với phiên bản Java 5 . Đối tượng triển khai giao diện này cho phép nó trở thành mục tiêu của " cho từng "tuyên bố. Điều này cho từng vòng lặp được sử dụng để lặp qua các mảng và tập hợp. Có thể lặp lại giao diện cũng có thể được triển khai để tạo hành vi tùy chỉnh.
Cú pháp
public interface Iterable<T>
Ví dụ
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); } } }
Đầu ra
First Name: Adithya Last Name: Sai Age: 20 First Name: Jai Last Name: Dev Age: 30