<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java `Iterator`接口示例 > 原文: [https://howtodoinjava.com/java/collections/java-iterator/](https://howtodoinjava.com/java/collections/java-iterator/) **Java 迭代器**接口,用于迭代集合中的元素(列表,集合或映射)。 它有助于一個接一個地檢索指定的收集元素,并對每個元素執行操作。 ## 1\. Java `Iterator`接口 所有 Java 集合類都提供`iterator()`方法,該方法返回**迭代器**的實例以遍歷該集合中的元素。 例如,`arraylist`類 `iterator()`方法以適當的順序返回此列表中元素的迭代器。 ```java ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); Iterator<String> iterator = list.iterator(); while(iterator.hasNext()) { System.out.println( iterator.next() ); } ``` 程序輸出。 ```java A B C D ``` ## 2\. Java `Iterator`方法 #### 2.1 `Iterator hasNext()` * 如果迭代在集合中剩余更多元素,則此方法返回`true`。 * 如果迭代器遍歷了所有元素,則此方法將返回`false`。 #### 2.2 `Iterator next()` * 此方法返回迭代中的下一個元素。 * 如果迭代中沒有更多元素,則拋出 `NoSuchElementException`。 #### 2.3 `Iterator remove()` * 它從基礎集合中刪除迭代器返回的最后一個元素(可選操作)。 * 每次調用`next()`只能調用一次此方法。 * 如果在迭代進行過程中以其他方式(而不是通過調用`remove()`方法)修改了基礎集合,則迭代器將拋出`ConcurrentModificationException`。 * 執行此操作的迭代器稱為**快速失敗**迭代器,因為它們快速而干凈地失敗,而不是冒著在未來未定時間冒任意,不確定行為的風險。 #### 2.4 `Iterator forEachRemaining()` * 此方法對其余的每個元素執行給定的操作,直到所有元素都已處理或該操作引發異常為止。 * 如果指定了順序,則按照迭代順序執行操作。 * 如果指定的操作為`null`,則拋出`NullPointerException`。 ## 3\. Java `Iterator`示例 #### 3.1 `ArrayList`迭代示例 遍歷[**`ArrayList`**](https://howtodoinjava.com/java-arraylist/)元素的 Java 示例。 ```java ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); System.out.println(list); //Get iterator Iterator<String> iterator = list.iterator(); //Iterate over all elements while(iterator.hasNext()) { //Get current element String value = iterator.next(); System.out.println( value ); //Remove element if(value.equals("B")) { iterator.remove(); } } System.out.println(list); ``` 程序輸出: ```java [A, B, C, D] A B C D [A, C, D] ``` #### 3.2 `HashSet`迭代示例 遍歷[**`HashSet`**](https://howtodoinjava.com/java/collections/java-hashset/)與遍歷列表非常相似。 無明顯差異。 ```java HashSet<String> hashSet = new HashSet<>(); hashSet.add("A"); hashSet.add("B"); hashSet.add("C"); hashSet.add("D"); System.out.println(hashSet); //Get iterator Iterator<String> iterator = hashSet.iterator(); //Iterate over all elements while(iterator.hasNext()) { //Get current element String value = iterator.next(); System.out.println( value ); //Remove element if(value.equals("B")) { iterator.remove(); } } System.out.println(list); ``` 程序輸出: ```java [A, B, C, D] A B C D [A, C, D] ``` #### 3.3 `HashMap`鍵迭代器示例 迭代[**`HashMap`**](https://howtodoinjava.com/java-hashmap/)的鍵的 Java 示例。 ```java HashMap<Integer, String> map = new HashMap<>(); map.put(1, "A"); map.put(2, "B"); map.put(3, "C"); map.put(4, "D"); System.out.println(map); //Get iterator Iterator<String> iterator = map.keys().iterator(); //Iterate over all keys while(iterator.hasNext()) { String key = iterator.next(); System.out.println( "Key : " + key + ", Value : " + map.get(key) ); } ``` 程序輸出: ```java {1=A, 2=B, 3=C, 4=D} Key : 1, Value : A Key : 2, Value : B Key : 3, Value : C Key : 4, Value : D ``` #### 3.4 `HashMap`值迭代器示例 遍歷`HashMap`值的 Java 示例。 ```java HashMap<Integer, String> map = new HashMap<>(); map.put(1, "A"); map.put(2, "B"); map.put(3, "C"); map.put(4, "D"); System.out.println(map); //Get iterator Iterator<String> iterator = map.values().iterator(); //Iterate over all values while(iterator.hasNext()) { System.out.println( "Value : " + iterator.next() ); } ``` 程序輸出: ```java {1=A, 2=B, 3=C, 4=D} Value : A Value : B Value : C Value : D ``` #### 3.5 `Iterator forEachRemaining()`示例 Java 示例,它遍歷`ArrayList`元素并對它們執行操作。 ```java ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); list.iterator().forEachRemaining( System.out::println ); ``` 程序輸出: ```java A B C D ``` ## 4\. 將迭代器轉換為流 首先將迭代器轉換為`Spliterator`,然后使用`StreamSupport`從`Spliterator`獲取流,從而將迭代器轉換為流。 ```java import java.util.Arrays; import java.util.Iterator; import java.util.Spliterator; import java.util.Spliterators; import java.util.stream.Stream; import java.util.stream.StreamSupport; public class IteratorToStream { public static void main(String[] args) { // Iterator Iterator<String> iterator = Arrays.asList("a", "b", "c") .listIterator(); //Extra step to get Spliterator Spliterator<String> splitItr = Spliterators .spliteratorUnknownSize(iterator, Spliterator.ORDERED); // Iterator -> Stream Stream<String> stream = StreamSupport.stream(splitItr, false); // Apply stream operations stream.forEach(System.out::println); } } ``` 程序輸出: ```java a b c ``` ## 5\. 總結 在本教程中,我們學習了 **Java `Iterator`接口**。 我們學習了迭代器方法和簡單示例來迭代`List`,`Set`和`Map`之類的不同集合。 將我的問題放在評論部分。 學習愉快! 參考文獻: [`Iterator`接口 Java 文檔](https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看