Java中的Iterable和Iterator是非常重要的概念,用于遍歷集合(collection)類和類似集合的數據結構。Iterable接口是所有實現了迭代功能的類所必須實現的,Iterator接口是用來在集合中遍歷的迭代器,可以使用它來遍歷各種集合元素。
public interface Iterable<T> { Iterator<T> iterator(); }
Iterable接口中只定義了一個iterator()方法,返回一個Iterator迭代器。Iterable接口是一個包含許多元素的對象,而Iterator是用于遍歷這些元素的對象。Iterable接口告訴我們對象是可迭代的,而Iterator提供了一個迭代器,讓我們可以在對象中迭代。
Iterator接口包含了幾個重要的方法:
- hasNext()方法:用于返回下一項是否還存在,如果還存在,返回true,否則返回false。
- next()方法:用于返回當前項,并將指針移到下一項。
- remove()方法:將當前指針所指向的元素刪除。
public interface Iterator<E> { boolean hasNext(); E next(); void remove(); }
Iterator接口中主要是hasNext()和next()方法,remove()方法比較少用。hasNext()方法用于判斷是否還有下一個元素,如果有,返回true,否則返回false。next()方法用于返回當前元素,并將指針移到下一個元素。
下面是一個使用Iterable和Iterator的示例:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class MyIterable { public static void main(String[] args) { List<String> myList = new ArrayList<>(); myList.add("a"); myList.add("b"); myList.add("c"); myList.add("d"); myList.add("e"); Iterator<String> it = myList.iterator(); while (it.hasNext()) { String s = it.next(); System.out.println(s); } } }
上述代碼將一個字符串列表中的元素依次打印到控制臺上。