首页 > 解决方案 > 从多个位置删除 Java 中的对象引用

问题描述

我有这样的课:

Class Node {
   private String name;
   private Node next;

   public Node(String name) {
      this.name = name;
   }

   public void setNext(Node node) {
      this.next = node;
   }

   public Node getNext() {
      return this.next;
   }
}

我有一个示例节点:

Node node = new Node("abc");
Node n1 = new Node("def");

node.setNext(n1);

现在,如果我这样做:

n1 = null;
node.getNext()  <--  This returns new Node("def");

如何在null不使用该setNext()方法的情况下使其返回。我有一个Node对象列表,如果我从列表中删除任何Node对象,我想将所有next指向已删除节点的指针设置为 null。

有谁知道如何实现这一目标?

标签: java

解决方案


如果不使用 setNext 进行设置,您将无法做到这一点,为什么?因为 node 仍然具有 n1 的值,所以您还必须将 node.setNext 设置为 null ......如果您希望将所有下一个指针从已删除节点设置为 null ,那么您必须循环整个事情直到结束并且将它们中的每一个设置为空。

如果你愿意,你可以在模型类中设置它,但你仍然必须使用 setNode


推荐阅读