我想创建一个固定大小的堆栈并在堆栈满时截断堆栈。为此,Creating a fixed-size Stack 中已经存在一种方法。 ,但我不想实现一个类。
可以做这样的事情吗?
Stack<String> stack = new Stack<String>(){
private static final long serialVersionUID = 1L;
public String push(String item) {
if (this.size() == FIXED_SIZE) {
//truncate()
}
return super.push(item);
}
};
其余的堆栈方法保持不变?
最佳答案
这就是我在 documentation 中找到的内容。我没有使用或测试它。所以我不确定这会如何进行。因为removeElementAt()
继承自 Vector 类,我希望 removeElementAt(0)
,仍然会删除底部的元素。
Stack<String> stack = new Stack<String>(){
private static final long serialVersionUID = 1L;
public String push(String item) {
if (this.size() == FIXED_SIZE) {
this.removeElementAt(0);
}
return super.push(item);
}
};
而且我还假设,截断的意思是删除列表中当前的第一个元素,如果您只想拒绝新的元素,则可以返回 null
.
关于java - 固定大小的Java栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366525/