溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java里面給對(duì)象賦值,慎用賦值符號(hào)(=) (轉(zhuǎn))

發(fā)布時(shí)間:2020-08-07 09:52:07 來源:ITPUB博客 閱讀:163 作者:amyz 欄目:編程語(yǔ)言
java里面給對(duì)象賦值,慎用賦值符號(hào)(=) (轉(zhuǎn))[@more@]

對(duì)于對(duì)象來說,注意變量名類似于指針,所以請(qǐng)慎用賦值符號(hào)(=)!
比如下面的代碼:

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

  ArrayList alProcessing = new ArrayList();

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

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

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

 
/*打開【1】關(guān)閉【2】的輸出是:(是錯(cuò)誤的)
第1個(gè)元素:1

第2個(gè)元素:3

第3個(gè)元素:5

第4個(gè)元素:7

第5個(gè)元素:8

第6個(gè)元素:9

說明:如果采用語(yǔ)句【1】,那么alProcessing和alAll指向內(nèi)存同一個(gè)區(qū)域,所以移除alProcessing里面的元素,也相當(dāng)于移除了alAll里面的元素,所以alAll.size()時(shí)刻在變,而且alAll里面的內(nèi)容也時(shí)刻在變。
而如果采用語(yǔ)句【2】就不同,alProcessing和alAll分別指向不用的區(qū)域.
*/
/*打開【2】關(guān)閉【1】的輸出是:(是正確的)
第1個(gè)元素:1

第2個(gè)元素:3

第3個(gè)元素:5

第4個(gè)元素:7

第5個(gè)元素:9
*/ 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI