java - 在下面的代码中,使当前节点可用于垃圾回收是个好主意吗?

标签 java linked-list

我在 Java 中使用下面的代码从链接列表中删除重复数据,我的问题是显式设置 current.next = null 是否是一个好主意,即 current 将是重复数据,所以我设置前一个节点是当前节点的下一个节点,但在java中删除当前节点意味着使其可用于GC。那么,我真的需要明确设置它吗?

public void removeDuplicates()
{
    HashSet<Integer> nodeSet = new HashSet<Integer>();
    Node previous = this;
    Node current = previous;
    while(current!=null)
    {
         if(!nodeSet.contains(current.data))
         {
             nodeSet.add(current.data);
             previous = current;
             current = current.next;
         }
        else
         {
             previous.next = current.next;
             current.next = null;
             current = previous.next;

         }
    }

}

最佳答案

如果您的节点无法访问,那么它的下一个节点也将无法访问(假设它只有 1 个父节点)

关于java - 在下面的代码中,使当前节点可用于垃圾回收是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530494/

相关文章:

c - 释放一个结构......我不确定我做得是否正确

c - 使用 C 将文本文件的一半传递到链表的一个节点,将第二部分传递到另一个节点

c - 如何从上到下打印链表节点

java - FileInputStream.available() 返回字节,但 ObjectInputStream.available() 返回 0

Java返回语句

java - 在JTextArea中插入文本

c - C中的链表add()方法

c - 为什么C链表追加失败

java - Eclipse错误: Invalid signature file digest for Manifest main attributes on several projects

java - 如何在java中访问Window Phone驱动器路径以在手机驱动器上读写