gpt4 book ai didi

java - 我怎样才能确保在java中只创建唯一的对象

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

这是一个面试问题,我脑子里一片空白,没有任何想法。假设我有一个 Employee 类,它具有三个字段 EmpIdEmpNameEmpAddress

现在我的工作是确保我创建的所有对象在 EmpId 的基础上都是唯一的,这样当我尝试创建具有相同 EmpId 的两个对象时,必须有一种机制来阻止/警告我它,也许编译器警报或任何逻辑都可以。

我在面试中唯一能想到的就是使用Map(即HashMap),其键为EmpId来确保唯一性。我知道数据库中的主键可以确保这一点,但是我如何在 Java 本身中处理这个问题。

对此的任何建议/想法将不胜感激。

最佳答案

我能想到很多办法。例如1:

  1. 使用将 EmpId 映射到 Employee 的传统映射。
  2. 使用一组 EmpId。
  3. 使用数据库表,其中每行代表一个 Employee,EmpId 是主键。
  4. 使用序列生成器2生成一系列唯一的 EmpId 值,并且不允许 Employee 对象构造函数的调用方提供 EmpId。
  5. 如果 EmpId 是整数且空间密集,请使用位图或 BitSet,而不是 EmpId 集。
  6. 如果 EmpId 是整数并且空间非常密集,则可以使用 TreeMap 来表示 EmpId 的范围。 (逻辑有点复杂。)
<小时/>

1 - 还有各种其他“糟糕”的解决方案,我不会一一列举。

2 - 这并没有真正解决如所述的问题。然而,这可能是您在实践中实现这一点的方式;例如使用 SQL SEQUENCE。

关于java - 我怎样才能确保在java中只创建唯一的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37922760/

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