java裡面給物件賦值,慎用賦值符號(=) (轉)

amyz發表於2007-08-15
java裡面給物件賦值,慎用賦值符號(=) (轉)[@more@]

對於來說,注意變數名類似於指標,所以請慎用賦值符號(=)!
比如下面的程式碼:

  ArrayList alAll = new ArrayList();
  for ( int i = 0; i < 10 ; i ++ ) {
  alAll.add ( String.valueOf(i) );
  }//此時alAll裡面有10個元素:0-9

  ArrayList alProcessing = new ArrayList();

  alProcessing = alAll;  //【1】這就是有問題的程式碼
  //alProcessing.addAll( alAll);  //【2】這裡是能夠達到目的的正確程式碼

  for ( int i = 0; i < alAll.size(); i ++ ){
  if ( i % 2 == 0 ){  //是偶數就移除它
  alProcessing.remove ( String.valueOf(i) );
  }
  }//經過處理之後,alProcessing裡面的元素應該只剩下奇數

  for ( int i = 0; i < alProcessing.size(); i ++ ){
  System.out.println("第" + (i+1) + "個元素:" + alProcessing.get(i));
  }

 
/*開啟【1】關閉【2】的輸出是:(是錯誤的)
第1個元素:1

第2個元素:3

第3個元素:5

第4個元素:7

第5個元素:8

第6個元素:9

說明:如果採用語句【1】,那麼alProcessing和alAll指向同一個區域,所以移除alProcessing裡面的元素,也相當於移除了alAll裡面的元素,所以alAll.size()時刻在變,而且alAll裡面的內容也時刻在變。
而如果採用語句【2】就不同,alProcessing和alAll分別指向不用的區域.
*/
/*開啟【2】關閉【1】的輸出是:(是正確的)
第1個元素:1

第2個元素:3

第3個元素:5

第4個元素:7

第5個元素:9
*/ 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958151/,如需轉載,請註明出處,否則將追究法律責任。

相關文章