如何重写 toString 方法来显示我的堆栈?

How to rewrite the toString method to display my stack?

如何在我的堆栈上重写 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;
    }
}

在这种情况下,我想在 class main

中显示我的实例化堆栈

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

正在插入 toString:

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

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

可以使用Arrays#toString其中returns一个string表示specified array的内容。

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

上面的字符串方法returns 字符串格式如下:

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