gpt4 book ai didi

java - 在java中永久更改节点的内容

转载 作者:行者123 更新时间:2023-11-30 03:28:33 25 4
gpt4 key购买 nike

假设我有一个存储 HashSet<String 的节点> (因此它是该节点的实例变量)。我有一个 getter 方法,可以让我检索 HashSet ,但现在我真的需要更新它。这可能吗?如果没有,什么是好的解决方法?我已经这样实现了我的树:

public class CTree implements Serializable {
public CRoot initialCommit;

public CTree(int id, CNode parent, HashSet<String> files) {
root = new CNode(id, parent, files, inheritedFiles);
}

public static class CNode implements Serializable {
int nodeID;
CNode parent;
HashSet<String> toCommit;

public CNode(int id, CNode parent, HashSet<String> files) {
nodeID = id;
this.parent = parent;
toCommit = files;

}

public HashSet<String> getFiles() {
return this.toCommit;
}

public CommitNode getParent() {
return this.parent;
}


public int getID() {
return this.nodeID;
}
}


}

最佳答案

当您获取节点的 HashSet 时,您不会获得 HashSet 的副本,而是获得对节点中同一对象的引用。因此,您只需更新它,Node 的内容也会更新,因为它们指向同一个对象。

您可能会对返回原语感到困惑。在这种情况下,该值被复制并且修改它对原始基元没有影响。

关于java - 在java中永久更改节点的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com