java - 为了节省内存并在java中快速运行,我应该使用哪种方式

标签 java memory

for(int i=0; i<len ;i++ ){
   Set<Integer> fileTerm = new HashSet<Integer>();

   ....

}

这个集合对于每次迭代都会很大

下一个方法是我们将创建函数放在循环之外并每次都清除

  Set<Integer> fileTerm = new HashSet<Integer>();

for(int i=0; i<len ;i++ ){

   ....
   fileTerm.clear();
}

最佳答案

创建新集合和通过清除重用旧集合之间的主要区别在于,清除不会将哈希表容量减少回初始设置。就您而言,这可能是一件好事,但节省的费用却微乎其微。您可能在该循环中做了足够的工作,这将不会被注意到。

另一方面,每次创建一个新集合会使您的代码更加健壮并且更易于推理。如果您引入了 continue 语句,而忘记在其之前执行 clear(),那么您的程序就会损坏。

关于java - 为了节省内存并在java中快速运行,我应该使用哪种方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23116634/

相关文章:

architecture - 多个 CPU 可以同时写入同一个 RAM 位置吗?

java - 在java中将大量字符串数据写入文件,优化选项

Javascript:在仅在需要时调用的函数中定义大对象是否节省内存?

memory - 字节、字、长字和长字之间的区别?

java - 兴趣点/Excel : applying formulas in a "relative" way

java - Android - Google map V2 授权失败。无法加载 map

javascript - Node.JS 递归函数错误变量

java - 尝试将 InputStream 放入 Amazon S3 时进程终止

java.lang.IllegalStateException : PWC1227: Cannot forward after response has been committed. ....为什么会出现?

java - java排列生成算法中的奇怪错误