为什么java.util包中的堆栈类是使用数组实现的?为什么不使用链接列表数据结构?
package java.util;
public class Stack<E> extends Vector<E>
{
private static final long serialVersionUID = 1224463164541339165L;
protected Object[] elementData; // in Vector Class
public E push(E paramE)
{
addElement(paramE);
return paramE;
}
public synchronized void addElement(E paramE)
{
modCount += 1;
ensureCapacityHelper(elementCount + 1);
elementData[(elementCount++)] = paramE;
}
答案 0 :(得分:5)
Stack,在JDK2中添加了LinkedList,实现Stack时LinkedList不存在,
堆栈是非常老的类,现在最佳实践使用ArrayDeque代替
LinkedList几乎所有情况都比ArrayList差(按性能),请参见Oracle guide和this answer in SO