java - 覆盖 Arraylist 中的现有对象

标签 java arraylist

我有一个带有行、列和值变量的对象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/

相关文章:

java - 大查询 API 异常

java - 我是否需要在构造函数中用另一个数组初始化 ArrayList 字段?

Java 等效于 C# typeof()

java - 如何为 Spring 托管 bean 编写 Junit 测试用例?

java - spring发送邮件出现异常

java - 对对象的 ArrayList 进行排序(排序后 ArrayList 不发生更改)

Java图书馆系统, checkin 和 checkout

java - 存储在数组列表中并从中选择的随机数

java - 数组的数组列表

java - 如何使用 Gson 将对象的 JSON 字符串转换为 ArrayList?