Java List size()如何工作?

cod*_*der 15 java list

在java中,有一个List接口和size()方法来计算List的大小.当我调用List.size()时,它是如何计算的?它是线性计算的吗?或者确定计数,只有当size()时返回值?

Yan*_*min 20

大小定义为列表中的元素数.该实现没有指定size()成员函数如何操作(迭代成员,返回存储的计数等),因为List是一个接口而不是一个实现.

通常,大多数具体的List实现将在本地存储它们的当前计数,使得大小为O(1)而不是O(n)

  • +1 - 对于三个通用列表类ArrayList,CopyOnWriteArrayList和LinkedList,最后一句肯定是正确的. (5认同)

Asa*_*aph 7

java.util.List是一个接口,而不是一个类.size()对于不同的具体实现,该方法的实现可以是不同的.对于实现size()方法的合理实现是java.util.List将类型的实例成员初始化int为零,并在将项添加到/从中删除时适当地递增/递减它List.该size()方法可以简单地返回上述实例成员.这当然只是一个例子.有关完整的详细信息,您可以随时查看内置List实现的源代码.所有源代码已经有多年了.