gpt4 book ai didi

java - 将相同的对象添加到 Set

转载 作者:行者123 更新时间:2023-12-01 12:23:16 25 4
gpt4 key购买 nike

如何编写代码将相同的对象添加到 SET 中?我想我将不得不使用 hashcode() 或 equal() 函数做一些事情。

Class Order {

private id;
private Set<Discount>;

}

Class Discount {

private id;
private Long amount;
}

现在,如果我尝试保存两项各 1 美元的折扣,则 SET 只显示一项折扣。当hibernate保存它时,折扣会有不同的ID,但它们和现在是一样的。不想更改 Order 类的定义,因为这是一个大项目,更改将是无止境的

最佳答案

根据JavaDoc for the Set interface ,集合不允许包含重复的相同元素(由 equals 和 hashcode 定义)。虽然当 hibernate 保存折扣时这会很好地工作(因为你说 id 会不同),但现在 id 是相同的,所以你想要完成的事情如果不做 future 人们将被困维护的事情是不可能的你的代码会讨厌你的。

由于您不想更改订单类别,因此最好的办法是追溯性地将折扣的 ID 更改为唯一。

关于java - 将相同的对象添加到 Set<E>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26514278/

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