通过二维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);
}
答案 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);
}
}
}