对于一般的 Android 开发,执行以下操作是否更昂贵: (例一)
for(int x=0; x < largeObjectCollection.size(); x++){
largeObjectCollection.get(x).SomeValueOne = "Sample Value 1";
largeObjectCollection.get(x).SomeValueTwo = "Sample Value 2";
largeObjectCollection.get(x).SomeValueThree = "Sample Value 3" ;
//Continues on to over 30 properties...
}
在这个实现上(示例 2)
for(int x=0; x < largeObjectCollection.size(); x++){
SampleObjectIns myObject = largeObjectCollection.get(x);
myObject.SomeValueOne = "Sample Value 1";
myObject.SomeValueTwo = "Sample Value 2";
myObject.SomeValueThree = "Sample Value 3" ;
//Continues on to over 30 properties...
}
当多次使用 .get()
而不是每次迭代都创建该对象的新实例时,我找不到任何性能影响的分解。
我认为 .get()
在资源方面使用不多,因为元素的位置已经知道,但是在处理许多属性时最好只获取如示例二所示,该对象一次?
最佳答案
在循环构造中多次调用 get()
方法不会对性能产生影响。
get() 方法不执行任何搜索类型的操作。该位置是已知的,因此 RAM 中的确切位置也是已知的。所以它需要做的就是进行一次 RAM 访问,这是一个恒定时间操作 - O(1)。
因此,您可以多次使用它而不会影响性能。但更简洁的方法是使用 get() 一次,将其存储在局部变量中,然后他们重新使用该变量。
关于java - 每次迭代多次使用 ArrayList.get() 时是否会对性能产生影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441273/