© Monstar Studio/Shutterstock.com

今天我們將回顧 Java 的 For-Each 循環,它是經典 For 循環的擴展。這些循環於 2004 年添加到 Java5,如今已成為處理數組和集合時必不可少的工具。

計劃是教您基礎知識,這需要理解 For-Each 循環背後的邏輯及其循環句法。這是一個您幾乎可以在任何項目中使用的工具,可以為您的程序提供強大的功能和效率提升。

什麼是 For-Each 循環?

For-Each 循環的主要功能是處理數組。這個想法是,此循環使您能夠遍歷數組或集合的項目。

每個項目都準備好在循環體的功能內進行修改。然後,返回將是一個新數組。您可以在 For-Each 循環中應用任何邏輯。這意味著此工具的投資回報率超乎想像:您基本上可以將它應用於您能想到的任何數組。

假設您正在處理一個包含姓名、電子郵件、位置或任何冗長的數據庫。現在,想像一下您可以使用一個簡單的命令為進一步的操作做好準備。確切地。

現在,讓我們看看如何構建和應用 For-Each 循環。

代碼示例

For-Each 循環的語法清晰易懂如果您熟悉 Java。

for (type var: array) { statements using var; }

我們從關鍵字 For 開始,然後是我們要迭代的數組的聲明。然後,我們聲明我們想要應用的任何邏輯(在大括號之間)。

現在讓我們使用這些概念編寫一個程序。

class First { public static void main(String[] args) { int array[]={1,2,3,4,5}; for (int element: array) System.out.print(element +””); } }//輸出//1 2 3 4 5

在上面的例子中,我們首先建立了一個包含一些項目的數組,以便我們處理它們。之後,我們聲明了實際的 For-Each 循環。

聲明我們要應用 For-Each 循環的數組類型非常重要,因為這通常可以避免錯誤和錯誤。

最後,循環將返回每個項目在每次迭代中,如輸出部分所示。

所有的程序員都喜歡效率。好吧,For-Each 循環的優點之一是它們避免了聲明普通 For 循環邏輯所需的額外步驟。讓我們在實際示例中看一下:

//For 循環語法 for (int i=0; i

兩種方法都給我們相同的結果,但是 For-Each 循環顯然是贏家。邏輯是更簡潔、更容易理解,使新程序員更容易使用它的功能。

但是,即使 For-Each 循環看起來更簡潔,也有一些它們不能做的事情。讓我們來談談這個-深度。

For-Each 循環的缺點

For-Each 循環的第一個問題是它們不能修改原始數組。這在處理動態程序時不是問題必須保存初始狀態。但在某些情況下,經典的 For 循環可能是更好的選擇。讓我們在代碼中看一下:

for (int: marks) { num=num*2; }//the原始數組保持不變

不幸的是,For-Each 循環無法跟踪數組中的索引。因此,我們不能使用任何暗示獲取元素索引的邏輯。

for ( int num: 數字) { 如果 ( num==target) { 返回 ???;//找不到索引 } }

For-Each 循環不能反向遍歷數組。此外,嵌套循環和布爾值是 For-Each 循環可能不是一個好主意的其他領域。

為什麼使用 For-Each 循環?

顧名思義,這個循環檢查集合或數組的每一項。這使我們能夠輕鬆高效地處理大型數據庫。

數據的迭代是程序員的日常任務,因此我們應該張開雙臂歡迎任何可以添加到我們技能集中的工具來幫助它.

對於 For-Each 循環,代碼更清晰、更易於理解的優點抵消了某些功能的缺失,例如數組修改。如果您需要此特定功能,您始終可以使用經典的 For 循環。因此,如果您不能始終應用更易於編寫的代碼,請不要擔心,但請記住它可以為您節省工作時間的情況!

讓我們探索 For 的其他功能-每個循環。這將提示您結合其他工具可以做什麼。

假設我們有一個包含數據的數組集合。我們的目標是使用 For-Each 循環將這些數據展平到一個數組中。檢查一下:

//數組流 輸入:arr[][]={{1,2,3},{4,5,6},{7,8,9}} 輸出:[1 , 2, 3, 4, 5, 6, 7, 8, 9]

正如您在代碼中看到的,我們有一個數組流準備好進行處理。每個數組包含一系列數字。我們將編寫的代碼將包含一些其他 Java 方法,因此請以此為契機測試您對這種編碼語言的理解程度!

讓我們看看每個代碼段是如何工作的。

class exmpl {//主函數 public static Stream flattenStream(T[][] arrays) { List list=new ArrayList>(); for (T[] array: arrays) { Arrays.stream(array).forEach(list::add); } 返回 list.stream(); } public static void main(String[] args) { Integer [][] arr={ {1,2,3}, {4,5,6}, {7,8,9} }; Integer[] flatArray=flattenStream(arr).toArray(Integer[]::new); System.out.println(Arrays.toString(flatArray)); } }

首先,我們建立了一個包含所有其他內容的函數,並聲明了一個列表來收集項目。

下一步是結合使用 For-Each 循環和 stream() 方法。給定數字列表,每個項目現在都是列表的流。在 For-Each 循環之外的最終返回是轉換為單個信息流的列表。

流準備就緒後,就該展平數組了。我們聲明每個數字,然後調用我們之前為每個數字編寫的函數。此函數獲取數據並返回單個數組中的所有內容。

這只是這些基本工具如何讓您作為程序員處理數據的一個小例子。有了它們,您可以玩轉信息並找到使代碼更高效、更易於調試的新方法。

結論:如何在 Java 中使用 For-Each 循環

For-每個循環都是遍歷數組或集合的最簡單方法。所選數組中收集的項目將使用我們想要的任何功能進行處理。此外,可以使用多種方法和函數的組合來完成此處理。

請記住,這些循環缺少某些功能。主要是,它們不支持向後迭代、循環嵌套和索引跟踪。如果您需要任何這些功能,請始終使用經典的 For 循環來避免錯誤。

然而,當您將 For-Each 循環與其他方法(例如 stream())結合使用時,開發的可能性是無限的。這就是我們想留給您的。始終尋找新的方法來擴展您作為程序員的視野,永遠不要滿足於單一的工具集。

我們建議您查看 Java 的官方文檔以獲取更多信息。

How To Use For-Each Loop In Java FAQs(常見問題解答)

Java 是什麼時候開發的?

Java 是於 1995 年 5 月發布,由 James Gosling 在 Sun Microsystem 開發。它是最流行的面向對象編程語言之一,每天有 900 萬固定用戶。

如何安裝 Java?

要安裝 Java ,您需要訪問 Java 網站上的下載部分,然後為您的系統選擇正確的安裝程序。免費! Java 適用於 Windows、Mac、Linux 和 Solaris。

什麼是經典的 For 循環?

For 循環是一種迭代構建的方法有條件有身體。它允許用戶重複運行代碼段,直到達到條件。 For 循環是 While 循環的替代方法,在需要的迭代次數固定時使用。

Java For-Each 循環如何工作?

For-Each 循環的工作方式與經典的 For 循環非常相似。使用時,返回與任一語句相同,但對於 For-Each 循環,語法更易於訪問。

我可以將 For-Each 循環與基於索引的函數一起使用嗎?

遺憾的是,沒有。 For-Each 循環無法跟踪數組中的索引位置。幸運的是,經典的 For 循環允許您使用此邏輯而不會出錯。

By Henry Taylor

我是後端開發人員。 你們中有些人可能在開發者大會上見過我。 最近我一直在做一個開源項目。