当前位置: 首页 > 面试题库 >

如何在Java中为每个对象获取唯一的ID?

咸利
2023-03-14
问题内容

我设置了一个向量集,以避免用迭代器分配之类的东西破坏GC(对于HashSet的值或键的每个遍历,对于集合引用和集合迭代器,您将分别获得一个新的/免费的)

无论如何,该Object.hashCode()方法是每个对象的唯一ID。(64位版本会失败吗?)

但是无论如何它都是可重写的,因此不能保证唯一,也不能保证每个对象实例唯一。

如果要创建“ ObjectSet”,如何为每个对象实例获取保证的唯一ID?

我刚刚找到了这个:答案。

如何获取覆盖hashCode()的对象的唯一ID?


问题答案:

java.lang.System.identityHashCode(obj);如果您确实需要它并了解其影响,它将为您完成此操作。即使提供哈希码的方法已被覆盖,它也会获得标识哈希码。



 类似资料:
  • 问题内容: 当Java中的类未覆盖 hashCode()时 ,打印此类的实例将提供一个不错的唯一数字。 Object的Javadoc谈到了 hashCode() : 在合理可行的范围内,由Object类定义的hashCode方法确实为不同的对象返回不同的整数。 但是,当类重写 hashCode()时 ,如何获得其唯一编号? 问题答案: System.identityHashCode(yourObj

  • 问题内容: 像这样,A a = new A(),如何获得a的名称?(从a中获得字符串“ a”)? 有一个JPanel包含一些JTextField,一个映射包含所有JTextField的名称(变量的名称)。我想将地图的值设置为JTextFields的文本。 跨过getName()方法,我得到了null -_-我知道getName()方法不用于获取变量名。我正在使用netbeans进行Java swi

  • 说我有一个地图(myMap)的字符串和对象-地图 如何在myMap中获得K. name每次出现的次数并将其存储在新地图中?新地图将显示K. Name作为键,其值将是它在myMap中出现的次数

  • 问题内容: 当我将Mongodb与Java结合使用时,我想在客户端生成对象ID。但是,在插入记录之前,我必须先查询mongodb以确保由ObjectId()方法生成的ID是唯一的。有什么方法可以生成唯一的对象ID,而无需两次访问mongodb? 问题答案: 对象ID与您在RDMS中使用的顺序ID不同。如果它们是根据对象ID规范正确生成的,则无需担心它们是唯一的。 您要做的就是确保始终创建一个新的对

  • 问题内容: 我有以下SQLite代码。如何在每行中插入自动生成的唯一ID? 问题答案: 您可以将其定义为自动递增列: 正如MichaelDorner指出的那样,SQLite文档说an可以做同样的事情,并且速度稍快。该类型的列是其别名,其行为类似于自动增量列。 此行为是隐式的,可能会使经验不足的SQLite开发人员措手不及。

  • 我有一个spring项目,其中我有一个抽象类人物,如下所示 我有这个Person类的2个实现,员工和驱动程序,如下所示 Person对象包含在Company类中,如下所示 现在,我收到json格式的请求,其中一个字段是这个person对象,如下所示: 问题是,这个人既可以是司机也可以是员工。字段“type”(不作为变量出现)在json中传递,并实例化相应的对象。然而,我无法获得实例化对象,因为实例