1. 程式人生 > 實用技巧 >java易錯知識點彙總_1

java易錯知識點彙總_1

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 }