Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào chúng ta có thể triển khai một tùy chỉnh có thể lặp lại trong Java?

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