当前位置: 首页 > 知识库问答 >
问题:

哈希集如何删除重复的条目?

林波鸿
2023-03-14
public class Type extends SomeObject implements java.io.Serializable {

    private Integer typeId;

    private String typeName;

     private String typeCode;
}

我正在使用hibernate作为对象类型从数据库获取数据。现在我的类不(也不是它的父类)重写equals方法。因此,如果我将所有object类型插入到一个hashset中,它不应该删除重复项,但它正在删除重复项。我的问题是它如何能够识别重复项?

共有1个答案

缪嘉志
2023-03-14

在Hibernate会话中,给定的实体只存在一次。即。如果你这样做

Type type1 = (Type) session.get(Type.class, 42);
Type type2 = (Type) session.get(Type.class, 42);
Type type3 = (Type) session.createQuery("select t from Type t where t.id = 42").uniqueResult();

Type1Type2Type3都将是对单个对象的引用。因此,将它们全部添加到空哈希集中将导致大小为1的哈希集,因为object.equals()在将对象与其自身进行比较时返回true。

 类似资料:
  • 问题内容: 我必须向现有表添加唯一约束。很好,除了表已经有数百万行,而且许多行违反了我需要添加的唯一约束。 删除有问题的行的最快方法是什么?我有一条SQL语句,该语句查找重复项并将其删除,但要花很长时间才能运行。有没有其他方法可以解决此问题?也许备份表,然后在添加约束后还原表? 问题答案: 其中一些方法似乎有些复杂,我通常这样做是: 给定table table,要在()上对其进行唯一化,使行保持为

  • 我希望下面的程序打印被Set删除的重复条目。但它总是打印一个空数组。有什么可能是错的?

  • 问题内容: 我必须删除列表中的重复对象。这是来自对象Blog的列表,如下所示: 复制的对象是标题,作者,URL和描述与其他对象相同的对象。 而且我无法更改对象。我不能在上面放新方法。 我该怎么做呢? 问题答案: 如果您不能编辑类的源代码(为什么不这样做),则需要遍历列表并根据提到的四个条件(“标题,作者,URL和描述”)比较每个项目。 为了以一种高效的方式做到这一点,我将创建一个新类,类似于包含这

  • hdel key field 删除指定的hash field

  • 我在Java中有一个< code>HashMap: 我需要的是删除重复条目(“1”,1)[当键和值都重复时]。我搜索并只找到了“如何删除重复的键/值”。有人能帮忙吗?

  • 问题内容: 我正在使用react- router进行路由,并使用hashHistory选项,以便可以从浏览器刷新页面或指定现有路由之一的url并到达正确的页面。它工作正常,但我在URL中看到的哈希是这样的: http:// localhost /#/ login?_k = ya6z6i 这是我的路由配置: 问题答案: 您是否尝试过browserHistory选项?您还可以从浏览器刷新页面,或指定现