gpt4 book ai didi

java - 比较列表中同一对象的两个实例

转载 作者:行者123 更新时间:2023-11-29 10:03:48 25 4
gpt4 key购买 nike

我正在尝试比较两个对象以查看它们是否相同。我从 JSON 代码创建第一个列表,并使用 InstructionModel 的实例填充列表(数据)。然后,我通过选择数据并创建 InstructionModel 的新实例(模型)来将数据与数据库进行比较。但是结果总是错误的,我的代码哪里做错了?

exists = data.contains(model);

if(!exists)
{
//Do Some Stuff Here
}

来自 List<InstructionModel> 的数据: enter image description hereInstructionModel 对象中的数据: enter image description here

最佳答案

您需要覆盖 InstructionModel 类的 equals 方法。在此方法中,您比较您的值,如果它们匹配则返回 true,否则返回 false。

List#contains函数将使用容器中对象的 Object#equals 函数。如果未覆盖此函数,它将只比较引用,而不是实际值。

添加:正如评论中提到的,如果您重写“equals”方法,那么您也需要重写“hashCode”方法(反之亦然)。集合将使用这些方法来比较您的对象实例。例如:如果您不覆盖两者,则两个实例在列表中可能被认为是相同的,但在 'Hashmap' 中则不同。 .

关于java - 比较列表中同一对象的两个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com