我的代码在工作部分没有问题,但我仍然有一些担心,如果有什么遗漏,所以我想审查我的代码。另外,我想知道这些方法的异常是否为真类型。
public class ArrayListStack<E> implements Stack<E> {
private ArrayList<E> list;
public ArrayListStack()
{
list = new ArrayList<>();
}
public int size()
{
return list.size();
}
public boolean isEmpty()
{
return size() == 0;
}
public void push(E e)
{
list.add(size(), e);
}
public E top()
{
if(isEmpty()) throw new IllegalStateException("Array is empty");
return list.get(size()-1);
}
public E pop()
{
if(isEmpty()) throw new IllegalStateException("Array is empty");
return list.remove(size()-1);
}
}发布于 2017-05-28 20:29:45
final,您可以确定没有人会将其设置为null (不需要空-检查==代码更易读和更安全) private final ArrayList<E> list = new ArrayList<>();。@Override标记越位方法,以便将来您(和其他开发人员)能够一目了然地了解您的方法的起源。https://codereview.stackexchange.com/questions/164387
复制相似问题