java中的toString()方法

java中的toString()方法,java,linked-list,Java,Linked List,toString方法返回一个字符串,该字符串包含列表中所有节点的项,并用逗号分隔。如果列表是循环的,当前版本将无法正常工作,我需要修复该方法,以便它能够正确地用于普通列表和循环列表。但是我正在为我当前的代码而挣扎 public String toString(){ String str = ""; Node current = head; while(current != null){ str = str + current.getItem();

toString方法返回一个字符串,该字符串包含列表中所有节点的项,并用逗号分隔。如果列表是循环的,当前版本将无法正常工作,我需要修复该方法,以便它能够正确地用于普通列表和循环列表。但是我正在为我当前的代码而挣扎

public String toString(){
    String str = "";
    Node current = head;
    while(current != null){
        str = str + current.getItem();
        current = current.next();
        if (current != null){
            str = str + ", ";
        }
    }
    return str;
}

您就快到了:只需在调用
current.next()后检查
current
是否为
head

在将
,“
添加到
str
之前,必须先断开循环

注意:使用
+=
组合字符串是次优的,尤其是在循环()中。考虑切换到<代码> StringBuilder < /代码>().< /P>
current = current.next();
if (current == head) {
    break;
}