Java | Stack 中的 peek() 和 lastElement() 方法有什么区别
Java | what is the difference between peek() and lastElement() method in Stack
Java |
Stack 中的 peek() 和 lastElement() 方法有什么区别。
他们都可以return栈顶元素,有性能差异还是其他什么?
这两种方法之间的唯一区别是 class 在堆栈为空的情况下抛出的异常。使用您喜欢的任何一个。 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);
}
Java | Stack 中的 peek() 和 lastElement() 方法有什么区别。 他们都可以return栈顶元素,有性能差异还是其他什么?
这两种方法之间的唯一区别是 class 在堆栈为空的情况下抛出的异常。使用您喜欢的任何一个。 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);
}