将堆栈从数组转换为arrayList

时间:2014-02-14 00:00:59

标签: java arrays arraylist stack

我有一个使用数组的堆栈实现,我正在尝试将其转换为数组列表。数组是顶部,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;

    }

1 个答案:

答案 0 :(得分:0)

您的push方法,对于您的阵列和ArrayList版本看起来都是正确的。你的pop数组看起来不错。但是,pop ArrayList需要工作。

你递减size,这很好,但你试图添加temp(未初始化),这是没有意义的。

您需要致电remove, passing the index size,这将返回您可以使用pop方法返回的必要项目。