我想在一个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()会迭代所有条目,因此当hashSet很大时,这会耗费时间吗? 在这种情况下,建议使用哪种方法,构造函数方法还是clear()方法?