可迭代JDK 1.5 中引入了接口。它屬於java.lang包。一般來說,實現 Iterable 的對象允許它被迭代。可迭代接口允許對象成為增強的for循環(for-each 循環)。
可迭代的定義
public interface Iterable<T> { Iterator<T> iterator(); Spliterator<T> spliterator(); void forEach(Consumer<? super T> action); }
這裏,T是迭代器返回的元素的類型。
迭代的方式
Iterable 對象可以通過三種方式進行迭代。
- 使用enhanced for loop(for-each循環)
- 使用 Iterable forEach 循環
- 使用迭代器<T>接口
使用增強的 for 循環迭代 Iterable
實現 Collection 接口的類的對象可以使用 for-each 循環進行迭代,Collection 接口擴展了 Iterable 接口。
Java
// Java Program to demonstrate iterate
// an iterable using for-each loop
import java.io.*;
import java.util.*;
class IterateUsingEnhancedForLoop {
public static void main (String[] args) {
// create a list
List<String> list = new ArrayList<String>();
// add elements
list.add("Geeks");
list.add("for");
list.add("Geeks");
// Iterate through the list
for( String element : list ){
System.out.println( element );
}
}
}
輸出
Geeks for Geeks
使用 forEach 循環迭代 Iterable
Iterable forEach()方法采用拉姆達表達式作為參數。集合中的每個元素都會調用此 Lambda 表達式。在下麵的示例中,對於每個元素對於列表,該函數將元素打印到控製台。
Java
// Java Program to demonstrate iterate
// an Iterable using forEach method
import java.io.*;
import java.util.*;
class IterateUsingforEach {
public static void main(String[] args)
{
// create a list
List<String> list = new ArrayList<>();
// add elements to the list
list.add("Geeks");
list.add("for");
list.add("Geeks");
// Iterate through the list
list.forEach(
(element) -> { System.out.println(element); });
}
}
輸出
Geeks for Geeks
使用 Iterator 迭代 Iterable
我們可以通過使用 iterator() 方法從中獲取 Iterator 來迭代 Java Iterable 的元素。
使用 Iterator 遍曆集合來執行操作時使用的方法是:
- hasNext():如果到達集合末尾,則返回 false,否則返回 true。
- next():返回集合中的下一個元素。
- remove():從集合中刪除迭代器返回的最後一個元素。
- forEachRemaining():按順序對集合中的每個剩餘元素執行給定操作。
Java
// Java Program to demonstrate iterate
// an Iterable using an Iterator
import java.io.*;
import java.util.*;
class IterateUsingIterator {
public static void main(String[] args)
{
List<String> list = new ArrayList<>();
list.add("Geeks");
list.add("for");
list.add("Geeks");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
輸出
Geeks for Geeks
可迭代的方法
METHOD |
DESCRIPTION |
---|---|
Iterable forEach() | 對 Iterable 的每個元素執行給定的操作,直到處理完所有元素或該操作引發異常。 |
iterator() | 返回 T 類型元素的迭代器。 |
spliterator() | 在此 Iterable 說明的元素上創建 Spliterator。 |
必讀
參考:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Iterable.html
相關用法
- Java Iterable forEach()用法及代碼示例
- Java Iterable轉Collection用法及代碼示例
- Java Iterable轉Stream用法及代碼示例
- Java Iterator轉Spliterator用法及代碼示例
- Java Iterator轉Stream用法及代碼示例
- Java Iterator轉List用法及代碼示例
- Java Iterator轉Iterable用法及代碼示例
- Java Iterator用法及代碼示例
- Java Iterator和Enumeration的區別用法及代碼示例
- Java Iterator和Spliterator的區別用法及代碼示例
- Java Integer divideUnsigned()用法及代碼示例
- Java Integer equals()用法及代碼示例
- Java Integer getInteger()用法及代碼示例
- Java Integer longValue()用法及代碼示例
- Java Integer max()用法及代碼示例
- Java Integer min()用法及代碼示例
- Java Integer numberOfLeadingZeros()用法及代碼示例
- Java Integer numberOfTrailingZeros()用法及代碼示例
- Java Integer parseInt()用法及代碼示例
- Java Integer parseUnsignedInt()用法及代碼示例
- Java Integer remainderUnsigned()用法及代碼示例
- Java Integer reverseBytes(int i)用法及代碼示例
- Java Integer toBinaryString()用法及代碼示例
- Java Integer toHexString()用法及代碼示例
- Java Integer toUnsignedLong()用法及代碼示例
注:本文由純淨天空篩選整理自Ganeshchowdharysadanala大神的英文原創作品 Iterable Interface in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。