Rumah  >  Artikel  >  Java  >  Java Iterator and Iterable: Analisis mendalam tentang mekanisme traversal koleksi Java

Java Iterator and Iterable: Analisis mendalam tentang mekanisme traversal koleksi Java

王林
王林ke hadapan
2024-02-19 20:36:071048semak imbas

Java Iterator 和 Iterable:深入剖析 Java 集合遍历机制

Antara muka iterator

Iterator dan Iterable dalam Java ialah antara muka utama dalam rangka kerja koleksi Java, yang memberikan kemudahan untuk merentasi koleksi. Dalam artikel ini, editor PHP Xinyi akan menganalisis secara mendalam prinsip kerja Iterator dan Iterable dalam Java untuk membantu pembaca memahami dengan lebih baik mekanisme traversal koleksi Java.

  • hasNext(): Semak sama ada terdapat lebih banyak elemen dalam koleksi.
  • next(): Mengembalikan elemen seterusnya dalam koleksi.
Antara muka

Iterator juga mentakrifkan beberapa kaedah pilihan, seperti kaedah remove(), yang digunakan untuk memadamkan elemen semasa daripada koleksi.

Gunakan antara muka Iterator

Anda boleh melintasi koleksi menggunakan antara muka Iterator menggunakan langkah berikut:

  1. Dapatkan objek Iterator koleksi.
  2. Gunakan kaedah hasNext() untuk menyemak sama ada terdapat lebih banyak elemen dalam koleksi.
  3. Jika terdapat lebih banyak elemen, gunakan kaedah next() untuk mendapatkan elemen seterusnya.
  4. Ulang langkah 2 dan 3 sehingga tiada lagi elemen dalam set.

Berikut ialah contoh melintasi ArrayList menggunakan antara muka Iterator:

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

public class IteratorExample {

public static void main(String[] args) {
// 创建一个 ArrayList
ArrayList<String> names = new ArrayList<>();

// 向 ArrayList 中添加一些元素
names.add("John");
names.add("Mary");
names.add("Bob");

// 获取 ArrayList 的 Iterator 对象
Iterator<String> iterator = names.iterator();

// 使用 Iterator 对象遍历 ArrayList
while (iterator.hasNext()) {
String name = iterator.next();
System.out.println(name);
}
}
}

Antara muka boleh diulang

Antaramuka Iterable ialah antara muka peringkat tinggi dalam rangka kerja koleksi Java untuk merentasi koleksi. Ia mentakrifkan kaedah iterator() yang mengembalikan objek Iterator.

Gunakan antara muka Iterable

Sesuatu koleksi boleh dilalui menggunakan antara muka Iterable menggunakan langkah berikut:

  1. Dapatkan objek Iterable koleksi.
  2. Gunakan kaedah iterator() untuk mendapatkan objek Iterator.
  3. Gunakan objek Iterator untuk melintasi koleksi.

Berikut ialah contoh melintasi ArrayList menggunakan antara muka Iterable:

import java.util.ArrayList;
import java.util.Iterable;

public class IterableExample {

public static void main(String[] args) {
// 创建一个 ArrayList
ArrayList<String> names = new ArrayList<>();

// 向 ArrayList 中添加一些元素
names.add("John");
names.add("Mary");
names.add("Bob");

// 获取 ArrayList 的 Iterable 对象
Iterable<String> iterable = names;

// 使用 Iterable 对象获取一个 Iterator 对象
Iterator<String> iterator = iterable.iterator();

// 使用 Iterator 对象遍历 ArrayList
while (iterator.hasNext()) {
String name = iterator.next();
System.out.println(name);
}
}
}

Perbezaan antara Iterator dan antara muka Boleh Diterbitkan

Antara muka Iterator dan Iterable ialah kedua-dua antara muka untuk merentasi koleksi, tetapi terdapat beberapa perbezaan antara keduanya.

  • Iterator ialah antara muka peringkat rendah yang beroperasi secara langsung pada elemen dalam koleksi.
  • Iterable ialah antara muka peringkat tinggi yang beroperasi pada elemen dalam koleksi melalui antara muka Iterator.
  • Antara muka
  • Iterator mentakrifkan dua kaedah utama: hasNext()next() dan
  • .
  • Antara muka iterator()Iterable mentakrifkan hanya satu kaedah:
  • .

Bila hendak menggunakan antara muka Iterator dan bila hendak menggunakan antara muka Iterable

Secara umumnya, jika anda perlu mengendalikan secara langsung elemen dalam koleksi, anda boleh menggunakan antara muka Iterator. Jika anda hanya perlu mengulangi elemen dalam koleksi, anda boleh menggunakan antara muka Boleh Diulang.

remove() 方法。如果只需要遍历集合中的元素,则可以使用 Iterable 接口的 iterator()Sebagai contoh, jika anda perlu mengalih keluar elemen daripada koleksi, anda boleh menggunakan kaedah

antara muka Iterator. Jika anda hanya perlu melintasi elemen dalam koleksi, anda boleh menggunakan kaedah 🎜 antara muka Iterable untuk mendapatkan objek Iterator, dan kemudian gunakan objek Iterator untuk melintasi koleksi. 🎜

Atas ialah kandungan terperinci Java Iterator and Iterable: Analisis mendalam tentang mekanisme traversal koleksi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam