嗨,我想知道 java.util.Stack.clear() 的性能复杂度是多少。
如果它只取消引用顶部 pf 堆栈,那么性能将为 O(1),
如果它删除每个节点,那么性能将是 O(n)
哪个是正确的?
最佳答案
根据消息来源 - http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/util/Vector.java#Vector.clear%28%29 - 对我来说看起来是 O(n)(加上需要完成的 GC)。
public void clear() {
removeAllElements();
}
public synchronized void removeAllElements() {
modCount++;
// Let gc do its work
for (int i = 0; i < elementCount; i++)
elementData[i] = null;
elementCount = 0;
}
关于java - java.util.Stack.clear() 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21246637/