【问题标题】:How to rewrite the toString method to display my stack?如何重写 toString 方法来显示我的堆栈?
【发布时间】:2019-03-09 20:42:09
【问题描述】:

如何重写堆栈上的 toString 方法以将其显示在输出中。 我有以下代码:

public class Stack {

    public int [] elements;
    public int top;

    public Stack (int e) {
        elements = new int [e];
        top = -1;
    }

    public void insert (int e) {
        if (! isFull ()) {
            top ++;
            elements [top] = e;
        }

    }

    public boolean isEmpty () {
        return top == -1;
    }

    public boolean isFull () {
        return this.top == this.elements.length - 1;
    }

    public int remove () {
        if (! isEmpty ()) {
            return elements [top--];
        }
        return 0;

    }

    public int size () {
        return this.elements.length;
    }
}

在这种情况下,我想在 main 类中显示我的实例化堆栈

从 Java 中使用 Stack 本身已经创建了一个结构,其中堆栈在输出中打印为:[1, 2, 3] 或 [1] 如果它只有一个值。

插入 toString:

    

@Override
    public String toString () {
        return "stack {" + "elements =" + elements + ", top =" + top + '}';
    }

只剩下类的名称。 我想要正确显示数组的东西 有人可以帮帮我吗?

【问题讨论】:

    标签: java stack tostring


    【解决方案1】:

    您可以使用Arrays#toString,它返回string 表示specified array 的内容。

       @Override
        public String toString () {
            return "stack {" + "elements =" + Arrays.toString(elements) + ", top =" + top + '}';
        }
    

    Above to String 方法以如下格式返回字符串:

    stack {elements =[1, 2, 3], top =3}
    

    【讨论】:

      【解决方案2】:
      @Override
      public String toString () {
              return "stack {" + "elements =" + Arrays.toString( elements  ) + ", top =" + top + '}';
      }
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-31
        • 2013-07-12
        • 1970-01-01
        • 2020-05-29
        • 2020-09-06
        • 2021-11-27
        • 2022-11-27
        • 1970-01-01
        相关资源
        最近更新 更多