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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java 8 `forEach`方法 > 原文: [https://beginnersbook.com/2017/10/java-8-foreach/](https://beginnersbook.com/2017/10/java-8-foreach/) 在 Java 8 中,我們有一個新引入的`forEach`方法來迭代 Java 中的[集合](https://beginnersbook.com/java-collections-tutorials/)和[流](https://beginnersbook.com/2017/10/java-8-stream-tutorial/)。在本指南中,我們將學習如何使用`forEach()`和`forEachOrdered()`方法來循環特定的集合和流。 ## Java 8 - `forEach`迭代`Map` ```java import java.util.Map; import java.util.HashMap; public class Example { ? ?public static void main(String[] args) { ? ? Map<Integer, String> hmap = new HashMap<Integer, String>(); ? ?hmap.put(1, "Monkey"); ? ?hmap.put(2, "Dog"); ? ?hmap.put(3, "Cat"); ? ?hmap.put(4, "Lion"); ? ?hmap.put(5, "Tiger"); ? ?hmap.put(6, "Bear"); /* forEach to iterate and display each key and value pair ? ? * of HashMap. ? ? */ ? ?hmap.forEach((key,value)->System.out.println(key+" - "+value)); /* forEach to iterate a Map and display the value of a particular ? ? * key ? ? */ ? ?hmap.forEach((key,value)->{ ? ? if(key == 4){ ? ? System.out.println("Value associated with key 4 is: "+value); ? ? } ? ? }); ? ? ? ?/* forEach to iterate a Map and display the key associated with a ? ? * particular value ? ? */ ? ?hmap.forEach((key,value)->{ ? ? if("Cat".equals(value)){ ? ? System.out.println("Key associated with Value Cat is: "+key); ? ? } ? ?});? ? } } ``` **輸出:** ![java 8 foreach example](https://img.kancloud.cn/2e/15/2e15673fcb72262888f81b7775c35d92_684x358.jpg) ## Java 8 - `forEach`迭代`List` 在這個例子中,我們使用`forEach()`方法迭代[`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist/)。在`forEach`中,我們使用[ lambda 表達式](https://beginnersbook.com/2017/10/java-lambda-expressions-tutorial-with-examples/)來打印列表的每個元素。 ```java import java.util.List; import java.util.ArrayList; public class Example { public static void main(String[] args) { List<String> fruits = new ArrayList<String>(); fruits.add("Apple"); fruits.add("Orange"); fruits.add("Banana"); fruits.add("Pear"); fruits.add("Mango"); //lambda expression in forEach Method fruits.forEach(str->System.out.println(str)); } } ``` **輸出:** ```java Apple Orange Banana Pear Mango ``` 我們也可以在`forEach()`方法中使用[方法引用](https://beginnersbook.com/2017/10/method-references-in-java-8/),如下所示: ```java fruits.forEach(System.out::println); ``` ## Java 8 - 迭代流的`forEach`方法 在這個例子中,我們使用`forEach()`方法在 Java 中迭代[流](https://beginnersbook.com/2017/10/java-8-stream-tutorial/)。 ```java import java.util.List; import java.util.ArrayList; public class Example { public static void main(String[] args) { List<String> names = new ArrayList<String>(); names.add("Maggie"); names.add("Michonne"); names.add("Rick"); names.add("Merle"); names.add("Governor"); names.stream() //creating stream .filter(f->f.startsWith("M")) //filtering names that starts with M .forEach(System.out::println); //displaying the stream using forEach } } ``` 輸出: ```java Maggie Michonne Merle ``` ## Java - `Stream forEachOrdered()`方法示例 對于順序流,元素的順序與源中的順序相同,因此無論使用`forEach`還是`forEachOrdered`,輸出都是相同的。但是,在處理并行流時,您總是希望在訂單對您很重要時使用`forEachOrdered()`方法,因為此方法可確保元素的順序與源相同。讓我們舉個例子來理解`forEach()`和`forEachOrdered()`之間的區別。 ```java import java.util.List; import java.util.ArrayList; public class Example { public static void main(String[] args) { List<String> names = new ArrayList<String>(); names.add("Maggie"); names.add("Michonne"); names.add("Rick"); names.add("Merle"); names.add("Governor");? //forEach - the output would be in any order System.out.println("Print using forEach"); names.stream()? .filter(f->f.startsWith("M")) ? .parallel() .forEach(n->System.out.println(n)); /* forEachOrdered - the output would always be in this order: * Maggie, Michonne, Merle */ System.out.println("Print using forEachOrdered"); names.stream()? .filter(f->f.startsWith("M"))? .parallel() .forEachOrdered(n->System.out.println(n)); } } ``` 輸出: ```java Print using forEach Merle Maggie Michonne Print using forEachOrdered Maggie Michonne Merle ``` #### 參考文獻: * [Java 8 JavaDoc - `foreach`](https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#forEach-java.util.function.BiConsumer-) * [Java 8 JavaDoc - `for`循環 vs `foreach`](https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.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>

                              哎呀哎呀视频在线观看