当前位置: 首页 > 知识库问答 >
问题:

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

周墨一
2023-03-14

我在Java中使用下面的代码从链表中删除重复的数据,我的问题是显式设置current.next=null是否是一个好主意,即current将是重复的数据,所以我将前一个节点的next设置为current的next,但是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个答案

祁博涛
2023-03-14

如果您的节点不可访问,那么它的next节点也将不可访问(假设它只有1个父节点)

 类似资料:
  • 如果我错了,请随时指正。在JVM堆中,有老一代和年轻一代两代。在做全GC时,在老一代中,有像紧凑空间和修复漏洞这样的繁重操作,这会使JVM挂起。而我发现在年轻一代中,应用了一个轻量级的GC,从我的搜索结果中还有一个叫做Eden的区域涉及年轻一代。但是,在搜索了很多文档后,我对年轻一代中的GC仍然有两个困惑, 在年轻一代中,GC似乎不像老一代GC那样工作(即老一代GC压缩并修复漏洞)?如果是这样,年

  • Kubernetes 垃圾收集器的角色是删除指定的对象,这些对象曾经有但以后不再拥有 Owner 了。 注意:垃圾收集是 beta 特性,在 Kubernetes 1.4 及以上版本默认启用。 Owner 和 Dependent 一些 Kubernetes 对象是其它一些的 Owner。例如,一个 ReplicaSet 是一组 Pod 的 Owner。具有 Owner 的对象被称为是 Owner

  • 问题内容: 有谁知道适当的资源来阅读Java中可用的垃圾收集机制?到目前为止,我发现了几个网站,但是它们没有包含有关何时使用哪种实现以及什么是实现的全面描述。(我指的是Oracle的jdk) 问题答案: 到目前为止,Java Hotspot VM中提供了4种GC算法: 该 系列GC -建议对不具备低暂停时间要求的客户风格的应用程序。 在 并行GC -使用时的吞吐量事项。 在 大多并发GC (也称为

  • 问题内容: 当伊甸园空间年轻时已满,将触发次要GC。在次要GC过程中,伊甸园和一个源Survivor空间中的非自由对象将被复制到另一个目标Survivor空间。 我的问题是,如果目标“幸存者”空间已满,次要GC如何处理? 问题答案: 如果不可能执行/完成次要收集,则将执行主要/完整收集。通常使用标记扫描紧凑算法而不是复制算法来完成此操作……这是完整收集昂贵的原因之一。 但是最终(如果您继续填充堆)

  • 我在尝试理解垃圾收集机制,我在研究代际算法,我有一个关于年轻人和老年人的代沟的问题。我读到,在年轻一代开始收集物品,GC是从GC根开始标记它们,以找到活的,通常它会将它们复制到幸存者空间,清除年轻一代区域,然后瞧。 我不明白,如果我们从GC根开始,我们开始遍历活动对象,我们不是也在旧一代中找到了对象吗?这是否意味着,当我们击中旧空间中的一个物体时,我们会在那个点上停止跟踪参照物?

  • 本文向大家介绍Java垃圾收集,包括了Java垃圾收集的使用技巧和注意事项,需要的朋友参考一下 示例 C ++方法-新增和删除 在像C ++这样的语言中,应用程序负责管理动态分配的内存所使用的内存。当使用new运算符在C ++堆中创建对象时,需要相应地使用delete运算符来处置该对象: 如果程序忘记了delete一个对象而只是“忘记”了该对象,则关联的内存将丢失给应用程序。这种情况的术语是内存泄