<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 – 內部與外部迭代 > 原文: [https://howtodoinjava.com/java8/java-8-tutorial-internal-vs-external-iteration/](https://howtodoinjava.com/java8/java-8-tutorial-internal-vs-external-iteration/) ## 外部迭代 直到 Java 7 為止,[集合框架](//howtodoinjava.com/java/collections/useful-java-collection-interview-questions/ "Useful java collection interview questions")都依賴于外部迭代的概念,其中集合通過實現`Iterable`提供枚舉其元素(即`Iterator`)的方法,并且客戶端使用它順序地遍歷了集合。 例如,如果我們想將所有字符串都大寫,則可以這樣寫: ```java public class IterationExamples { public static void main(String[] args){ List<String> alphabets = Arrays.asList(new String[]{"a","b","b","d"}); for(String letter: alphabets){ System.out.println(letter.toUpperCase()); } } } ``` 或者我們可以這樣寫: ```java public class IterationExamples { public static void main(String[] args){ List<String> alphabets = Arrays.asList(new String[]{"a","b","b","d"}); Iterator<String> iterator = alphabets.listIterator(); while(iterator.hasNext()){ System.out.println(iterator.next().toUpperCase()); } } } ``` 以上兩個代碼段均用于外部迭代。 外部迭代非常簡單,但是存在幾個問題: 1)Java 的`for-each`循環/迭代器本質上是順序的,必須按集合指定的順序處理元素。 2)它限制了管理控制流的機會,該控制流可能能夠通過利用數據的重新排序,并行性,短路或惰性來提供更好的性能。 ## 內部迭代 有時需要`for-each`循環的強力保證(順序,順序),但通常只是性能的劣勢。 外部迭代的替代方法是內部迭代,客戶端讓它由庫處理而不是控制迭代,而僅提供必須對所有/某些數據元素執行的代碼。 上一個示例的內部迭代等效項是: ```java public class IterationExamples { public static void main(String[] args){ List<String> alphabets = Arrays.asList(new String[]{"a","b","b","d"}); alphabets.forEach(l -> l.toUpperCase()); } } ``` 在外部迭代將“做怎么”(大寫)和“怎么做”(`for`循環/迭代器)混合使用的情況下,內部迭代使客戶端僅提供“做怎么”,而由庫控制“怎么做”。 這提供了許多潛在的好處:客戶端代碼可以更加清晰,因為它只需要關注于陳述問題,而不是解決問題的細節,并且我們可以將復雜的優化代碼移到可以使所有用戶受益的庫中。 這就是關于內部與外部迭代的全部內容。 **祝您學習愉快!**
                  <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>

                              哎呀哎呀视频在线观看