M是Arraylists的数组列表(2D ArrayList) 我有这个代码,我想要做的是将值“resp”分配给M中特定位置的变量“valor”,但是指令:
M.get(i).get(d).valor = resp;
将“resp”的值分配给所有Array位置,而不仅仅是我想要的位置i
,d
。
为什么会这样?
int d = 5;
for(int i = 0; i < f; i++){
resp = Leer.nextFloat();
M.get(i).get(d).valor = resp;
}
答案 0 :(得分:0)
For循环重复其块内的代码,直到条件失败。
您的情况我 小于 f 。考虑到i = 0并假设 f 是arrayLists的ArrayList中的最后一个元素,那么你的代码所做的是:
在幕后,这就是:
M.get(0).get(d).valor = resp;
M.get(1).get(d).valor = resp;
...
M.get(f-1).get(d).valor = resp;
因此,您正在编辑arrayList的所有值。如果你知道这些位置完全不使用for循环。插入号码: 例如M.get(0).get(d).valor = resp;
如果您不知道该职位,那么:
int d = 5;
int d = 5;
for(int i=0;i<f;i++){
resp = Leer.nextFloat();
if(M.get(i).get(d) == valor)
M.get(i).get(d).valor = resp;
}
如果这不是您的意思,请发布您的整个代码。