0

我正在使用以下方法研究联合查找算法:

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);

它不起作用,因为它实际上并没有进行“正确”的复制。我试过克隆父母,但它也不起作用。

谢谢大家,圣诞快乐!

4

1 回答 1

0

也许这个?

公共 E 查找(E src)

{
    E mysrc= src;
    while (parent.get(mysrc) != null)
        mysrc= parent.get(mysrc);
    parent.put(mysrc,src);
    return mysrc;
}
于 2015-12-25T21:22:34.930 回答