我希望了解
.size()
方法的性能表现。这个方法返回列表中对象数量的引用(比如一个类成员,在向列表添加对象时每次递增)吗?还是会遍历所有对象?哪一个更高效?每次调用.size()
:List<Vector3> objects = getCoords();
for (int x = 0; x < objects.size(); x++){
for (int y = 0; y < objects.size(); y++){
for (int z = 0; z < objects.size(); z++){
drawShape(x, y, z);
}
}
}
或者通过保存到本地变量:
List<Vector3> objects = getCoords();
int size = objects.size();
for (int x = 0; x < size; x++){
for (int y = 0; y < size; y++){
for (int z = 0; z < size; z++){
drawShape(x, y, z);
}
}
}
假设我们的列表中有> 30,000个对象。
哪种方式更快/更有效?
如果我们使用ArrayList<T>
或List<T>
,这是否重要?
那么对于简单语句:.size()
或.isEmpty()
呢?
if (objects != null && objects.size() > 0){
doThis();
}
或者通过调用.isEmpty()
if (objects != null && !objects.isEmpty()){
doSomethingElse();
}
ArrayList<T>
还是List<T>
取决于灵活性。最终,您选择实际实现。size()
和isEmpty()
解决不同的问题。 - awkspgetCoords()
返回什么类型的List
?也许这并不重要,但值得注意的是,List
只是一个接口,因此它的实现可能会有所不同。 - Fengyang Wang