2014-11-05 63 views
0

我有兩維的arrayList,我想替換程序中設置的那個。問題是,如果我用「ONE」替換arrayList的值,它將工作,如果我用另一個大於1的值替換它,程序將進入循環。我正在使用以下語法:替換二維java ArrayList的值

arrayList.get(index).set(index2,VALUE) 

基本上這應該不會發生,因爲我沒有改變循環內的任何東西,或? 我的問題是爲什麼?以及如何解決它?

這是(我假設)產生的問題是代碼:

if(mark.get(index1).get(index2) == 1 && mark.get(i-1).get(j) != 1){ 
           // Replace the value 
           mark.get(i-1).set(j,1); 
           flag = true; 
          } 

編輯:我刪除了我的代碼,因爲它給了我想要的代碼幫助的印象,我已經貼吧,這樣你知道我在說什麼。謝謝

+0

這是我們嘗試調試的很多代碼。我們不是這裏的調試服務。請嘗試自己調試它。如果你在你的代碼中找到了一個沒有產生你期望的結果的地方,而你不明白爲什麼,我們可以幫你解決這個問題。 – ajb 2014-11-05 02:26:21

+0

你應該閱讀羅伯特C.馬丁的書乾淨的代碼。你也應該開始重構你的代碼,爲每個方法做一些簡單的事情,並進行單元測試,這樣你就知道每種方法都符合你的預期。最後一步一步完成代碼,分析你的變量和值,以確保它按照你的期望運行。發佈幾百行代碼,並希望別人爲您調試不是一種學習方式。 – Churk 2014-11-05 02:38:56

+0

@ajb我沒有發佈代碼進行調試。我的問題與我發佈的相同。如果我想用一個以外的值替換一個值,arraylist.set()方法就會中斷。我想知道是否有人代碼描述arraylist.set行爲。我的代碼完美工作,並給出了預期的結果。 – aaa 2014-11-05 02:44:49

回答

0

得到了什麼問題!所有的縮寫索引都有一個ZERO值,而且我有一個條件是檢查它是否不是ONE(假設它無論如何都是零)。如果我將它改爲任何其他值,那麼在接下來的重複中,條件將被廢棄。