java error: cannot find symbol stack.size()

java error: cannot find symbol stack.size()

我越来越困惑了。我检查了 java 中 size() 方法的参数,我知道它是 Stack class 继承的 Vector class 的一部分。为什么此方法不适用于我的堆栈?我想知道堆栈的大小。如果不是这种方式,还有其他方法可以获取尺寸吗?

import java.util.Vector;

public class InfixCalculator
{
...
    Stack<String> stack = new Stack<String>();

    while((stack.size() > 0) && (stack.peek() != "(")
}
             ^ symbol: method size()
               location: variable stack of type Stack<String>
public class Stack<String> implelments StackInter<String>
{
     public void push()
    {
        ...
    }   
    public String pop()
    {
        ...
    }
    public boolean isEmptyStack()
    {
        ...
    }
    public String peek()
    {
        ...
    }
}

对不起。我应该提到我无法导入 Stack class。 我必须创建自己的 class 堆栈。有没有办法在我的 Stack class?

中创建一个方法来获取堆栈的大小

这是获取 stack 尺寸的示例代码,如果这是您打算做的-

Stack<String> sk=new Stack<String>();

sk.push("a");
sk.push("c");
sk.push("e");
sk.push("d");

int sizeOfStack=sk.size();

System.out.println("Size of Stack :"+sizeOfStack);

输出

Size of Stack :4

来源: http://www.easywayserver.com/blog/java-how-to-get-size-of-stack/

进一步阅读: http://morbidjava.blogspot.in/2012/03/how-to-impliment-stack-data-structure.html

您必须在 Stack class 中创建一个 size 方法才能调用它。您还可以扩展或实现一些其他 Collections 样式 class 已经具有该方法。如果 Stack 中没有 size 方法并且 StackInter 中也没有,那么就没有什么可调用的。