【问题标题】:Java Method isn't resolved by stack objectJava 方法未由堆栈对象解析
【发布时间】:2023-01-30 19:51:22
【问题描述】:

我试图解决一个名为 push at bottom of stack 的问题。 我得到了递归逻辑,但问题是,我写了一个方法pushAtbottom,但main 方法无法识别该方法,我不明白为什么。错误是“无法解析 pushAtbottom”

import java.util.Stack;

public class pushatbottom {

    public static void main(String[] args) {

        Stack<Integer> s =new Stack<>();

        s.push(1);
        s.push(2);
        s.push(3);
        s.push(4);
        s.push(5);
        s.pushAtbottom(6,s);
        while(!s.isEmpty())
        {
            System.out.println(s.peek());
            s.pop();
        }
    }

    void pushAtbottom(int data,Stack<Integer> s)
    {
        if(s.isEmpty())
        {
            s.push(data);
        }
        int top=s.pop();
        pushAtbottom(4,s);
        s.push(top);

    }
}

【问题讨论】:

  • pushAtbottom 不是 java.util.Stack 类的方法,它是在您的 pushatbottom 类中定义的。使用pushAtbottom(6,s);,而不是s.pushAtbottom(6,s);,也使该方法static。另外你的递归调用是错误的,它应该是pushAtbottom(data, s);而不是pushAtbottom(4,s);

标签: java data-structures methods compiler-errors stack


【解决方案1】:

pushAtbottom 是您班级的方法,而不是java.util.Stack 的方法。您需要将其声明为静态(即static void ushAtbottom(int data,Stack&lt;Integer&gt; s)),然后在从main调用它时将堆栈传递给它:

pushAtbottom(6, s);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2016-06-11
    相关资源
    最近更新 更多