gpt4 book ai didi

java - 如何避免 Set 中的重复
转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:35 25 4
gpt4 key购买 nike

我有一个集合:

final Set<Object> partialResults = new LinkedHashSet<Object>();

像这样设置值:

partialResults.add(createResultList(data.getProduct(), data.getMaterialId()));

private List<Object> createResultList(final ProductModel product, final String code)
{
final List<Object> result = new ArrayList<Object>();
result.add(product);
result.add(code);
return result;
}

它正在添加重复的产品;如何避免添加重复记录?

最佳答案

您的 Set 包含 ArrayList 实例,每个实例包含一个 ProductModel 实例和一个 String 实例。为了让 LinkedHashSet 认为两个元素相等,它们必须具有相同的 hashCode 并且 equals 方法在应用于时应返回 true他们两个。

对于ArrayListhashCodeequals依赖于hashCodeequals ArrayList 的元素。 String 正确覆盖了 hashCodeequals,这意味着您可能没有覆盖 hashCodeequalsProductModel 正确。

关于java - 如何避免 Set<Object> 中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29009280/

25 4 0