java.util.Stack类中的peek()方法

Posted 吴号虎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.util.Stack类中的peek()方法相关的知识,希望对你有一定的参考价值。

  java.util.stack类中常用的几个方法:isEmpty(),add(),remove(),contains()等各种方法都不难,但需要注意的是peek()这个方法。

  peek()查看栈顶的对象而不移除它。

import java.util.Stack;


public class MyStack1 {
    private Stack<Integer> stackData;
    private Stack<Integer> stackMin;
    
    public MyStack1(){
        this.stackData = new Stack<Integer>();
        this.stackMin = new Stack<Integer>();
    }
    public void push(int newNum){
        if (this.stackData.isEmpty()){
                this.stackMin.push(newNum);
        }else if( newNum <= this.getmin()){
                this.stackMin.push(newNum);
        }
        this.stackData.push(newNum);
    }
    public int pop(){
        if(this.stackData.isEmpty()){ 
            throw new RuntimeException ("Your stack is empty");
        }
        int value  = this.stackData.pop();
            if(value == this.getmin()){
                this.stackMin.pop();
            }
        return value;
    }
    public int getmin(){
        if (this.stackMin.isEmpty()){
                throw new RuntimeException("Your stack is empty");
        }
        return this.stackMin.peek();
    }
    public static void main(String[] args) {
        MyStack1 stack1 = new MyStack1();
        stack1.push(3);
        System.out.println(stack1.getmin());
        stack1.push(4);
        System.out.println(stack1.getmin());
        stack1.push(1);
        System.out.println(stack1.getmin());
        System.out.println(stack1.pop());
        System.out.println(stack1.getmin());

        System.out.println("=============");
    }
}

  运行结果:3

       3

         1

       1

       3

以上是关于java.util.Stack类中的peek()方法的主要内容,如果未能解决你的问题,请参考以下文章

学号 2018-2019-20172309 《程序设计与数据结构(下)》第三周学习总结

java.util.Stack 的迭代器中是不是有错误?

为啥 java.util.Stack 是使用 Vector 而不是 Arraylist 实现的

Stack

java.util.Stack类简介

我什么时候应该使用java.util.Stack vs My Own Implementation? [关闭]