我正在使用以下方法研究联合查找算法:
HashMap<E,E> parent = new HashMap<E,E>();
我写了这个方法来找到一个家庭的最后一个成员
public E find(E src)
{
while (parent.get(src) != null)
src = parent.get(src);
return src;
}
它有效,但问题是我将使用大集合处理这个哈希图;所以我想修改 find 方法,使其将 find(src) 设置为 src 的“父亲”。但我不能这样做,而且我有直觉的原因:如果我尝试在方法的开头进行复制
E copy = src;
然后在方法结束时
parent.put(copy,src);
它不起作用,因为它实际上并没有进行“正确”的复制。我试过克隆父母,但它也不起作用。
谢谢大家,圣诞快乐!