ArrayList.size() 方法是否缓存?

2022-09-02 21:35:04

我想知道,您可以在现有缓存上调用的方法吗?还是在性能关键代码中,我只将 存储在本地int中更可取?size()ArrayList<T>size()

我希望它确实被缓存,当你没有在调用之间添加/删除项目时。size()

我说的对吗?

更新
我不是在谈论内联或类似的东西。我只想知道该方法本身是否在内部缓存该值,或者它是否每次调用时都会动态计算。size()


答案 1

我不认为我会说它是“缓存”的 - 但它只是存储在一个字段中,所以它足够快,可以经常调用。

Sun JDK 的实现只是:size()

public int size() {
    return size;
}

答案 2

是的。

快速浏览一下Java源代码会告诉你答案。