【发布时间】:2017-10-18 10:56:09
【问题描述】:
Arraylist 对象是否将上次请求的值存储在内存中以便下次更快地访问它?还是我需要自己做?
或者更具体地说,就性能而言,这样做是否更好:
for (int i = 0; i < myArray.size(); i++){
int value = myArray.get(i);
int result = value + 2 * value - 5 / value;
}
而不是这样做:
for (int i = 0; i < myArray.size(); i++)
int result = myArray.get(i) + 2 * myArray.get(i) - 5 / myArray.get(i);
【问题讨论】:
-
性能方面,一点都不重要。
-
@Kayaman 即使使用大型 ArrayList?
-
这和你在第一个变量中声明一个额外的变量是一样的。但它更清晰
-
考虑到
ArrayList不是线程安全的集合并且循环很紧,无论如何它都会在处理器缓存中。 -
考虑使用增强的 for 循环(虽然我不确定您的原始代码是否有意义,因为它总是在不使用值的情况下重新分配“结果”): for (int value : myArray) { int result = 价值 + 2 * 价值 - 5 / 价值;在 Java8 中,您可以使用 lambda 使其更加简洁。
标签: java performance memory arraylist get