<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java `forEach`教程 原文:http://zetcode.com/java/foreach/ Java `forEach`教程顯示了如何使用 Java8 `forEach()`方法。 我們與消費者合作,并在列表,映射和集合集合上展示`forEach()`。 `forEach()`方法是 Java8 中引入的。它為程序員提供了一種新的,簡潔的迭代集合的方法。 `forEach()`方法對`Iterable`的每個元素執行給定的操作,直到所有元素都已處理或該操作引發異常。 ```java void forEach(Consumer<? super T> action); ``` 這是`forEach()`方法的語法。 ## `Consumer`接口 `Consumer`接口是一個函數式接口(具有單個抽象方法的接口),它接受單個輸入并且不返回結果。 ```java @FunctionalInterface public interface Consumer { void accept(T t); } ``` 這是`Consumer`接口的定義。 `com/zetcode/JavaForEachListConsumer.java` ```java package com.zetcode; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; public class JavaForEachListConsumer { public static void main(String[] args) { List<String> items = new ArrayList<>(); items.add("coins"); items.add("pens"); items.add("keys"); items.add("sheets"); items.forEach(new Consumer<String>() { @Override public void accept(String name) { System.out.println(name); } }); } } ``` 在此示例中,我們使用`forEach()`遍歷字符串列表。 Java lambda 表達式可以縮短此語法。 ## Lambda 表達式 Lambda 表達式主要用于定義函數式接口的內聯實現,即僅具有單個方法的接口。 Lambda 表達式是使用`->` lambda 運算符創建的。 `com/zetcode/JavaForEachListLambda.java` ```java package com.zetcode; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; public class JavaForEachListLambda { public static void main(String[] args) { List<String> items = new ArrayList<>(); items.add("coins"); items.add("pens"); items.add("keys"); items.add("sheets"); items.forEach((String name) -> { System.out.println(name); }); } } ``` 這里我們有同樣的例子。 lambda 表達式使示例更簡潔。 ## Java 映射上的`forEach` 以下示例在映射上使用`forEach()`。 `com/zetcode/JavaForEachMap.java` ```java package com.zetcode; import java.util.HashMap; import java.util.Map; public class JavaForEachMap { public static void main(String[] args) { Map<String, Integer> items = new HashMap<>(); items.put("coins", 3); items.put("pens", 2); items.put("keys", 1); items.put("sheets", 12); items.forEach((k, v) -> { System.out.printf("%s : %d%n", k, v); }); } } ``` 我們有一個字符串/整數對的映射。 使用`forEach()`方法,我們遍歷映射并打印其鍵/值對。 在下一個示例中,我們在代碼中顯式顯示`Consumer`和`Map.Entry`。 `com/zetcode/JavaForEachMap2.java` ```java package com.zetcode; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; public class ForEachMap2 { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("cups", 6); map.put("clocks", 2); map.put("pens", 12); Consumer<Map.Entry<String, Integer>> action = entry -> { System.out.printf("key: %s", entry.getKey()); System.out.printf(" value: %s%n", entry.getValue()); }; map.entrySet().forEach(action); } } ``` 該示例在一個條目集上循環,該條目集是通過`entrySet()`檢索的。 ## Java 集合上的`forEach` 以下示例在一個集合上使用`forEach()`。 `com/zetcode/JavaForEachSet.java` ```java package com.zetcode; import java.util.HashSet; import java.util.Set; public class JavaForEachSet { public static void main(String[] args) { Set<String> brands = new HashSet<>(); brands.add("Nike"); brands.add("IBM"); brands.add("Google"); brands.add("Apple"); brands.forEach((e) -> { System.out.println(e); }); } } ``` 我們有一組字符串。 使用`forEach()`方法,我們遍歷集合并打印其值。 ## 在數組上使用 forEach 以下示例在數組上使用`forEach()`。 `com/zetcode/JavaForEachArray.java` ```java package com.zetcode; import java.util.Arrays; public class JavaForEachArray { public static void main(String[] args) { int[] nums = { 3, 4, 2, 1, 6, 7 }; Arrays.stream(nums).forEach((e) -> { System.out.println(e); }); } } ``` 在示例中,我們有一個整數數組。 我們使用`Arrays.stream()`方法將數組轉換為流。 然后`forEach()`方法遍歷元素并將它們打印到控制臺。 ## 過濾列表 在使用`forEach()`遍歷數據之前,我們可以輕松過濾數據。 `com/zetcode/JavaForEachListFilter.java` ```java package com.zetcode; import java.util.ArrayList; import java.util.List; public class JavaForEachListFilter { public static void main(String[] args) { List<String> items = new ArrayList<>(); items.add("coins"); items.add("pens"); items.add("keys"); items.add("sheets"); items.stream().filter(item -> (item.length() == 4)).forEach(System.out::println); } } ``` 在此示例中,我們過濾字符串列表,并將過濾后的列表打印到控制臺。 僅顯示具有四個字符的字符串。 ## `IntConsumer`,`LongConsumer`,`DoubleConsumer` 從 Java8 開始,我們為原始數據類型內置了使用者接口:`IntConsumer`,`LongConsumer`和`DoubleConsumer`。 `com/zetcode/JavaForEachConsSpec.java` ```java package com.zetcode; import java.util.Arrays; import java.util.function.DoubleConsumer; import java.util.function.IntConsumer; import java.util.function.LongConsumer; public class JavaForEachConsSpec { public static void main(String[] args) { int[] inums = { 3, 5, 6, 7, 5 }; IntConsumer icons = i -> System.out.print(i + " "); Arrays.stream(inums).forEach(icons); System.out.println(); long[] lnums = { 13L, 3L, 6L, 1L, 8L }; LongConsumer lcons = l -> System.out.print(l + " "); Arrays.stream(lnums).forEach(lcons); System.out.println(); double[] dnums = { 3.4d, 9d, 6.8d, 10.3d, 2.3d }; DoubleConsumer dcons = d -> System.out.print(d + " "); Arrays.stream(dnums).forEach(dcons); System.out.println(); } } ``` 在示例中,我們創建了三種類型的使用者,并使用`forEach()`對其進行了迭代。 在本教程中,我們介紹了 Java8 `forEach()`方法。 我們已經介紹了使用者,并在列表,映射和集合上使用了`forEach()`。 您可能也對以下相關教程感興趣: [Java 教程](/lang/java/),[用 Java8 的`StringJoiner`連接字符串](/articles/java8stringjoiner/),[Google Guava 簡介](/articles/guava/),[Java 過濾列表](/java/filterlist/)或 [Android 教程](/mob/android/)中的代碼。 列出[所有 Java 教程](/all/#java)。
                  <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>

                              哎呀哎呀视频在线观看