gpt4 book ai didi

java - 调用 hashSet.clear() 后创建一个新的 HashSet 还是重用更好

转载 作者:IT王子 更新时间:2023-10-28 23:38:55 28 4
gpt4 key购买 nike

我想在 HashSet 中处理一些新数据,而不需要任何旧数据或旧 HashSet 对象。旧的 HashSet 对象不在其他地方引用。

简单地做hashset = new HashSet<String>()更好吗?让 JVM 释放旧 HashSet 对象的内存,或者我应该调用 hashSet.clear()并重复使用相同的 HashSet?

根据openJDK,hashSet.clear()是:

public void clear() {
map.clear();
}

和 map.clear() :

public void clear() {
modCount++;
Entry[] tab = table;
for (int i = 0; i < tab.length; i++)
tab[i] = null;
size = 0;
}

由于map.clear()会迭代所有的entry,hashSet很大的时候会不会很耗时?这种情况下推荐使用哪一种,构造方法还是clear()方法?

最佳答案

简单的不再引用你的HashSet,让垃圾收集器来做吧。

在解除引用之前清除 HashSet 不会更快地释放内存。

关于java - 调用 hashSet.clear() 后创建一个新的 HashSet 还是重用更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18509734/

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