我有一个带有行、列和值变量的对象DataEntry
,并且我正在尝试向 ArrayList 添加一个新对象,除非已经有一个具有相同行和列值的对象,然后我现在用新值覆盖 value
我有这个:
public void set(int row, int column, double val) {
DataEntry temp = new DataEntry(row, column, val);
for (int i = 0; i < data.size(); i++)
if (data.get(i).getRow() == row && data.get(i).getColumn() == column)
data.set(i, temp);
else {
data.add(temp);
}
}
它没有正确设置值,我认为它与 data.get(i).getRow()
感谢任何帮助
最佳答案
这是因为无论 data
中的第 i
项是否与行和列匹配,您都会继续搜索。
您应该做的是,当您找到匹配的 i
时从该方法返回,否则继续。如果循环结束时没有找到匹配的索引,请将 temp
添加到 data
:
public void set(int row, int column, double val) {
DataEntry temp = new DataEntry(row, column, val);
for (int i = 0; i < data.size(); i++)
if (data.get(i).getRow() == row && data.get(i).getColumn() == column) {
data.set(i, temp);
return;
}
}
data.add(temp);
}
关于java - 覆盖 Arraylist 中的现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46925558/