2014-11-05 36 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(假设它无论如何都是零)。如果我将它改为任何其他值,那么在接下来的重复中,条件将被废弃。