这是一个奇怪的问题。但是这里。
我有对象 X,它被插入到数组中、哈希表中、另一个对象(容器对象)中,它表示 X 在 3d 空间中点 P 处的实例。
有时我想在给定的 P 处刷新 X。这很简单——从表中调用点 P 并直接操作数组。
现在说那些 X 是 Y 的一部分 - 准确地说是 Y 的片段。假设给定的 Y 消失了。现在,如果 Y 消失,所有与它相连的 X 也应该消失,对吧?
准确地说,对象 Y 在概念上已从模型中移除。它是否被实际删除并不重要(例如,它可能存储在其他地方。)但重点是,除了检查 Y 附近的每个点的 X 之外,我如何正确地将它们从哈希表中删除?
- 它们是数组的一部分,所以另一个 Y 的 X 也可能在那里,所以我们只需要删除属于给定 Y 的 X。
- 我们可以搜索属于 Y 的 X 的哈希表结构——例如,我们可以找出 Y 将占据的所有点 P,然后拉出这些容器并删除所有附加到 Y 的 X。
- 我们可以直接删除它们吗?如果 Y 有其 X 的列表,是否可以通过引用将它们删除,而无需通过搜索表的工作?
这实际上是关于整个引用的一般性问题。在其他情况下,存在对一个对象的多个引用,我希望能够快速删除该对象,而无需在其他位置导航到它。
这意味着当一个引用类删除对象时,该对象应该被普遍“删除”;其他任何清单都不应保留对它的引用。