簡體   English   中英

將一個數組列表的元素復制到另一個數組列表

[英]copying elements of an array-list to the other array-list

我寫了這樣一個簡單的代碼:

  • 我已經在類的構造函數中編寫了以下代碼: List element = new ArrayList();

  • 我有一個名為cost的變量,其類型為int

  • 一種方法將返回三個具有不同對象的列表: listOne, listTwo, listThree

  • 在另一種方法中,我在下面編寫了代碼,該方法將使用在上述方法中創建的那些列表。對於上面的三個列表,此方法將被調用三次。 每個清單的每個通話。

     // begining of the method: int cost = 0; if(cost==0){ element = listOne; cost = 3; } if(cost<4){ element = listtwo; cost = 6; } // end System.out.println(element.toString()); 

不幸的是,它不是打印listTwo而是打印listThree (如果我們有4個或更多列表,它將打印最后一個)!

if-else條件是否有問題?

謝謝

編輯:這是我主要的代碼,但其條件是像上面的代碼: auxiliaryList在下面的代碼是listOnelist TwolistThree分別。

cost = 0;

public void method {


                System.out.println(element.toString());//number one
                if (cost== 0) {


                element = auxiliaryList;
                cost = 3;

                }
                else if( cost<4){

                        element =auxiliaryList;
                         cost = 6;
                }

            }
            return;

        }

}

同樣用//number one聲明的行也向我表明,在進入if / else條件之前,元素列表將設置為方法中的當前列表。

if-else條件是否有任何問題。

是的-問題是您沒有使用 if / else,而是只使用了兩個if語句。

if使用else ,則更改第二個就可以了:

  if (cost == 0) {
      element = listOne;
      cost = 3;
  } else if (cost < 4) {
      element = listtwo;
      cost = 6;
  }

問題是,如果cost為0,它將進入第一個塊,將cost設置為3,然后進入第二個塊,因為3小於4。沒有“ else”阻止這種情況發生-兩個if塊是完全獨立的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM