java 中的 toString 倒序
toString reverse order in java
我的方法 toString() 应该 return 堆栈的字符串表示形式。字符串表示形式由堆栈的元素组成,这些元素按存储顺序排列,并括在方括号中。我的问题是我现在 returning [element0, element1, element2, element3, element4] 所以我想知道是否有一种简单的方法 return 以相反的顺序排列字符串,即 return [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; }
节点class:
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;
}}
您可以在每个元素的开头使用 StringBuilder
和 insert
而不是附加它:
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();
}
您的列表仅是前向链接的,因此您可以使用临时 ArrayList 并在索引 0 处添加每个元素。
我的方法 toString() 应该 return 堆栈的字符串表示形式。字符串表示形式由堆栈的元素组成,这些元素按存储顺序排列,并括在方括号中。我的问题是我现在 returning [element0, element1, element2, element3, element4] 所以我想知道是否有一种简单的方法 return 以相反的顺序排列字符串,即 return [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; }
节点class:
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;
}}
您可以在每个元素的开头使用 StringBuilder
和 insert
而不是附加它:
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();
}
您的列表仅是前向链接的,因此您可以使用临时 ArrayList 并在索引 0 处添加每个元素。