Map、List集合类的清空使用clear还是重新new呢

各位有经验的Javaer,请问使用Map、List这种集合类做缓存时,需要[color=red]每天清空一次数[/color]据,那么我是用集合自带的[b]clear[/b]方法好呢,还是直接重新[b]new[/b]一个新的集合,让原来的集合等待gc释放好呢?如果有这方面经验的朋友说说各种方法的利弊,以及企业中[b]常用的解决方案[/b] :D

量大的时候用clear好 ,量小的时候都可以
用new 的话相对比较会耗资源,因为map也是事实上也是用数组的,当map的容易也就是capacity不够时,会自动扩大到原来的capacity*负载因子,这时就需要搬数据了,即从原来的小数组搬到原来的大数组上,这是很耗资源的

[quote]那如果我new的时候直接new一个原大的,是不是可以?
主要我考虑clear也比较好资源,我看它的实现也是轮询吧
而且还有一个并发问题,如果正在clear的时候,这个map又要被用,是不是会有问题?
直接new会比较快速吧,只是占用内存了,等gc后应该就会把原来的内存回收掉[/quote]

也是...用hashtable...是线程安全。
但你又有一个问题。说clear比较吃资源

如果原来的cache很大,再new一个一样大的。。也可能溢出..

[quote]如果原来的cache很大,再new一个一样大的。。也可能溢出[/quote]
是的没错..

忘 高手来解答一下..呵呵

大量数据你用迭代吗....

Iterator 跟list map set 比占用内存是最小的.