【发布时间】:2010-10-26 04:41:40
【问题描述】:
正如标题所问,我想知道 LinkedList 类中的 size() 方法是需要分摊的 O(1) 时间还是 O(n) 时间。
【问题讨论】:
-
注意,对于并发结构,计算大小可能很慢,而且毫无意义。
标签: java size linked-list time-complexity
正如标题所问,我想知道 LinkedList 类中的 size() 方法是需要分摊的 O(1) 时间还是 O(n) 时间。
【问题讨论】:
标签: java size linked-list time-complexity
它是 O(1)。你可以google一下源代码,你会得到这样的:
来自http://www.docjar.com/html/api/java/util/LinkedList.java.html
我查看过的所有 Collection 类都将大小存储为变量,并且不会遍历所有内容来获取它。
【讨论】:
如果您查看源代码,您会发现 O(1)...
来自链表:
private transient int size = 0;
...
/**
* Returns the number of elements in this list.
*
* @return the number of elements in this list
*/
public int size() {
return size;
}
【讨论】: