java易錯知識點彙總_1
阿新 • • 發佈:2020-10-29
1、forEach(增強for迴圈)
使用增強for迴圈可以很容易的遍歷陣列或集合中的元素,因此很容易讓人們聯想到是否可以使用forEach語句對陣列或集合中的元素進行修改呢?
答案是不能的。程式碼如下:
1 public static void main(String[] args) { 2 3 String[] strs = new String[]{"aaa","bbb","ccc"}; 4 5 for (String str : strs) { 6 str = str + "forEach"; 7 }8 9 for (String str : strs) { 10 System.out.println(str); 11 } 12 13 }
在本例中,筆者想通過增強for迴圈,對字串陣列中的每個元素的後面追加一個“forEach”,結果執行結果如下圖所示:
分析原因如下:
在增強for迴圈中,通過迭代器遍歷字串陣列中的元素並將其賦值給字串變數str,然後
str = str + "forEach"
只是將變數str的值進行了修改,並沒有對字串陣列中的元素做出更改,因此字串陣列中的各個元素並沒有發生變化。
總結:
使用增強for迴圈語句可以很方便的遍歷陣列或集合中的元素,但是如果想修改陣列或集合中的元素,一般採用傳統的for迴圈語句實現。
【程式碼如下】
1 public static void main(String[] args) { 2 3 String[] strs = new String[]{"aaa","bbb","ccc"}; 4 5 for (int i = 0; i < strs.length; i++) { 6 strs[i] = strs[i] + "forEach"; 7 } 8 9 for (String str : strs) { 10 System.out.println(str);11 } 12 }