我有一个使用数组的堆栈实现,我正在尝试将其转换为数组列表。数组是顶部,arrayList在底部。这两段代码是否做同样的事情?我还有一个pop方法的两个部分,一个数组和一个数组列表。但是对于这个我得到一个错误,temp没有被初始化,也找不到符号temp。任何帮助表示赞赏谢谢。
USING ARRAY
public void push(T value)
{
if(size==values.length)
expandCapacity();
values[size] = value;
size++;
}
USING ARRAYLIST
public void push(T value)
{
values.add(value);
size++;
}
USING ARRAY
public T pop()
{
if(isEmpty())
throw new RuntimeException("Attempt to pop from empty stack");
size--;
T temp = values[size];
values[size] = null;
return temp;
}
USING ARRAYLIST
public T pop()
{
T temp;
if(isEmpty())
throw new RuntimeException("Attempt to pop from empty stack");
size--;
values.add(temp);
values.temp = null;
//values[size] = null;
return temp;
}
答案 0 :(得分:0)
您的push
方法,对于您的阵列和ArrayList
版本看起来都是正确的。你的pop
数组看起来不错。但是,pop
ArrayList
需要工作。
你递减size
,这很好,但你试图添加temp
(未初始化),这是没有意义的。
您需要致电remove
, passing the index size
,这将返回您可以使用pop
方法返回的必要项目。