更改多维列表的特定行

时间:2012-02-01 04:08:37

标签: java list arraylist

通过二维ArrayList>的方法是什么?并且对于特定的行,你减去一个(但不是全部,只是基本上在此之前有一个布尔T / F检查,如果布尔值是T然后这样做)所有我一直想到的是什么本质上最终是无限的环

只能对列表的特定行进行更改...即:(为了使其生效,elig.get(0)为false)

如果我有: [[1,2,3],[4,5,2],[2,1,1],[3,6,1],[1,6,3]]我想得到(例如。在

第一行和最后一行是-1,所以: [[0,1,2],[4,5,2],[2,1,1],[3,6,1],[0,5,2]]

等等

我现在的代码是:(我把它隔离了,真的不知道为什么这不起作用?

for(int j=0; j<(bigArr.size()); j++) {   

            for(int k=0; k<(bigArr.get(0).size()); k++) {   

                if(elig.get(0) == false) {  

                bigArr.get(j).set(k, ballotArr.get(j).get(k)-1);



            }

        }
System.out.println(ballotArr);     
}

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

List<List<Integer>> nums = ...;

if (nums.size() >= 2) {
    subtractOneFromRow(nums, 0);
    subtractOneFromRow(nums, nums.size() - 1);
} else if (nums.size() == 1) {
    subtractOneFromRow(nums, 0);
}
// Do nothing if there are no rows

// ...

private static void subtractOneFromRow(List<List<Integer>> nums, int r) {
    List<Integer> row = nums.get(r);
    for (int c = 0; c < row.size(); c++) {
        row.set(c, row.get(c) - 1);
    }
}

答案 1 :(得分:0)

就像拥有ArrayList的ArrayList一样。因此,不是像arr [row] [column]那样引用普通数组中的特定元素,而是arr.get(row).get(column)

//loops through first dimension
for(int row=0;row<myList.size();row++) {
    //check that T/F you mentioned
    if(myBoolean) {
        //loop through second dimension
        for(int i=0;i<myList.get(row).size();i++) {
            //subtract 1 from everything in second dimension
            myList.get(row).set(i, myList.get(row).get(i)-1);
        }
    }
}