java - 固定大小的Java栈

标签 java stack

我想创建一个固定大小的堆栈并在堆栈满时截断堆栈。为此,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/

相关文章:

java - 尝试运行 Java jar 文件时出现 "ClassFormatError: Incompatible magic value"

java - 当我点击注册按钮时,我的应用程序停止并退出

java - LogisticRegressionModel.predict 中的要求失败

java - 检查对象是否有Java中的方法?

python - 使用shape或pivot_table reshape pandas数据框(堆叠每行)

java - 异常最终被吞噬

c# - C#中如何删除不在栈顶的栈项

c - 在 C 中从堆栈上的 Int 中正确读取 Char

c++ - 将队列转换为堆栈?

c++ - 如何保证单例不被过早销毁?