Как переписать метод toString для отображения моего стека? - PullRequest
0 голосов
/ 09 марта 2019

Как я могу переписать метод 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 уже создало структуру, в которой стеки печатаются в выводе как: [1, 2, 3] или [1], если оно имеет только одно значение.

Вставка строки toString:

1010 *

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

Осталось только название класса. Я хотел бы что-то, что отображает массив правильно Может кто-нибудь помочь мне ??

Ответы [ 2 ]

0 голосов
/ 09 марта 2019
@Override
public String toString () {
        return "stack {" + "elements =" + Arrays.toString( elements  ) + ", top =" + top + '}';
}

0 голосов
/ 09 марта 2019

Вы можете использовать Arrays#toString, который возвращает string представление содержимого specified array.

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

Метод String to String возвращает String в следующем формате:

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