如何正确地为我的java ArrayList赋值?

时间:2016-04-17 13:47:38

标签: java arraylist

M是Arraylists的数组列表(2D ArrayList) 我有这个代码,我想要做的是将值“resp”分配给M中特定位置的变量“valor”,但是指令:

M.get(i).get(d).valor = resp;  

将“resp”的值分配给所有Array位置,而不仅仅是我想要的位置id。 为什么会这样?

int d = 5;
for(int i = 0; i < f; i++){            
    resp = Leer.nextFloat();            
    M.get(i).get(d).valor = resp;
}

1 个答案:

答案 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;
    }

如果这不是您的意思,请发布您的整个代码。