繁体   English   中英

在 Java 中使用 Hashmap 联合查找

[英]Union-Find using Hashmap in Java

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

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

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

谢谢大家,圣诞快乐!

也许这个?

public E find(E src)

{
    E mysrc= src;
    while (parent.get(mysrc) != null)
        mysrc= parent.get(mysrc);
    parent.put(mysrc,src);
    return mysrc;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM