- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对我来说问题的根源是 Java 不允许引用。
问题可以简单概括一下。假设您有一个 Blob 对象列表:
class Blob {
public int xpos;
public int ypos;
public int mass;
public boolean dead;
private List<Object> giganticData;
public void blobMerge(Blob aBlob) {
. . .
if (. . .) {
this.dead = true;
} else {
aBlob.dead = true;
}
}
}
如果两个 Blob 足够接近,它们应该被合并,这意味着被比较的两个 Blob 之一应该具有另一个的属性(在这种情况下,添加质量并合并巨大的数据集),而另一个应该是标记为从列表中删除。
抛开如何最佳地识别相邻 blob 的问题(这本身就是一个 stackoverflow 问题),如何将 blobMerge() 逻辑保留在 Blob 类中?在 C 或 C++ 中,这很简单,因为您只需将一个 Blob 的指针传递给另一个 Blob,并且“主机”可以对“ guest ”执行任何它喜欢的操作。
但是,上面在 Java 中实现的 blobMerge() 将在“ guest ”Blob 的副本上进行操作,这有两个问题。 1) 无需承担复制 giganticData 的高昂成本,2) “ guest ”Blob 的原始副本将在包含列表中保持不受影响。
我只能看到两种方法:
1) 将副本传递进去,所有事情都做两次。换句话说,Blob A 托管 Blob B,Blob B 托管 Blob A。您最终得到了正确的答案,但所做的工作超出了必要的范围。
2) 将 blobMerge() 逻辑放入包含列表的类中。但是,当您开始子类化 Blob(BlueBlob、RedBlob、GreenBlob 等)时,这种方法的扩展性非常差,因此每个排列的合并逻辑都不同。您最终会在保存列表的通用容器中得到大部分特定于子类的代码。
我见过一些关于使用库向 Java 添加引用的内容,但是必须使用库才能使用引用的想法让我打消了这个想法。
最佳答案
为什么它会在副本上运行? Java 传递对对象的引用。引用与 C++ 指针非常相似。
关于java - 两个Java列表元素如何互相访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264274/
我遇到的问题不是紧急情况,但我不知道该怎么做。我有两个 aspx 网络表单页面。每个都有一个下拉列表。两者都由来自 sql server 的相同数据源填充。问题是,如果我在第 1 页选择一个值,然后转
我正在使用 OpenvSwitch-2.5.2 在两个虚拟机上设置第 2 层网络,如上图所示。 在阅读了 ovs 官方教程和其他一些文章后,我在每个虚拟机上尝试了以下命令: # on vm1 ip l
我是一名优秀的程序员,十分优秀!