gpt4 book ai didi

java - 为什么 Stack 使用基于 1 的索引而不是像 Java 中的数组那样使用基于 0 的索引?

转载 作者:行者123 更新时间:2023-12-04 20:15:15 25 4
gpt4 key购买 nike

为什么Java中的Stack实现方法search(Object)返回对象所在的栈顶从1开始的位置而不是0 -based 位置,就像我们通常在 Array 中所做的那样。这是否有任何特殊原因,或者如果我们使用基于 0 的索引没有解决任何特定问题,这是否解决了任何特定问题?

最佳答案

你可以在docs中看到

...this method returns the distance from the top of the stack of the occurrence nearest the top of the stack; the topmost item on the stack is considered to be at distance 1...

该方法从堆栈大小中减去 Vector 基类中基于 0 的 lastIndexOf()

来自source code

public synchronized int search(Object o) {
int i = lastIndexOf(o);

if (i >= 0) {
return size() - i;
}
return -1;
}

如果堆栈中有一个元素,比如“A”,它将是最顶层的元素,因此与顶部的距离将为 1。size() - lastIndexOf("A") == 1

关于java - 为什么 Stack 使用基于 1 的索引而不是像 Java 中的数组那样使用基于 0 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59918511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com