【问题标题】:Java | what is the difference between peek() and lastElement() method in Stack爪哇 | Stack中的peek()和lastElement()方法有什么区别
【发布时间】:2022-01-08 04:02:37
【问题描述】:

Java | Stack 中的 peek() 和 lastElement() 方法有什么区别。 两者都可以返回栈顶元素,是否有性能差异或其他原因?

【问题讨论】:

    标签: java stack


    【解决方案1】:

    这两种方法的唯一区别是在堆栈为空的情况下抛出的异常的类。使用您喜欢的任何一个。 JDK 8 中的标准实现大致相同,因此不会有可衡量的性能差异。

    Stack 提供相同方法的第二个版本的原因可能是 peek、pop 和 push 传统上与编程堆栈相关联。

    来自 java/util/Stack.java

     public synchronized E peek() {
        int len = size();
    
        if (len == 0)
            throw new EmptyStackException();
        return elementAt(len - 1);
    }
    

    并来自 java/util/Vector.java

     public synchronized E lastElement() {
        if (elementCount == 0) {
            throw new NoSuchElementException();
        }
        return elementData(elementCount - 1);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多