toto字符串在Java中的反向顺序

问题描述 投票:0回答:2

我的方法toString()应该返回堆栈的字符串表示形式。字符串表示形式由堆栈的元素按其存储顺序组成,并用方括号括起来。我的问题是我现在正在返回[element0,element1,element2,element3,element4],所以我想知道是否存在一种简单的方法来以相反的顺序返回字符串,即返回[element4,element3,element2,element1,element0]代替?

public class Stack<E> implements IStack<E> {
    public String toString() {
    String str = "[";
    if (head != null) {
        str += head.getmElement();
        Node<E> tempNode = head.getmNextNode();
        while (tempNode !=  null) {
            str += ", " + tempNode.getmElement();
            tempNode = tempNode.getmNextNode();
        }
    }
    str += "]";
    return str; }

节点类:

public class Node<E> {
private E mElement;
private Node<E> mNextNode;

Node(E data) {

    this.setmElement(data);
}
public E getmElement() {
    return this.mElement;
}
public void setmElement(E element) {
    this.mElement = element;
}
public Node<E> getmNextNode()
{
    return this.mNextNode;
}
public void setmNextNode(Node<E> node)
{
    this.mNextNode = node;
}}
indexing linked-list reverse tostring
2个回答
0
投票

您可以在每个元素的开头使用StringBuilderinsert而不是附加元素:

public String toString() {
    StringBuilder sb = new StringBuilder("[");
    if (head != null) {
        sb.append(head.getmElement());
        Node<E> tempNode = head.getmNextNode();
        while (tempNode !=  null) {
            sb.insert(1, ", ").inser(1, tempNode.getmElement());
            tempNode = tempNode.getmNextNode();
        }
    }
    sb.append("]");;
    return sb.toString();
}

0
投票

您的列表仅被前向链接,因此您可以使用临时ArrayList并将每个元素添加到索引0。

© www.soinside.com 2019 - 2024. All rights reserved.