【发布时间】:2018-12-02 19:41:53
【问题描述】:
我写了一小段代码来实现链表数据结构。我有一个内部类“节点”,它有两个字段节点和值。 Linked list 的构造函数接受 int 值参数并将该值分配给 Node 对象,并将 Node 对象添加到 LinkedList 对象。
我的问题是 java.util.LinkedList 的哪个代码使列表对象被打印为数字列表而不是其对象的地址?
当我打印“list1”时,输出为 [3,4]。 当我打印“列表”时,输出是对象地址的哈希码。
我在java.util.LinkedList 类中没有找到toString()。
如何让我的代码打印 LinkedList 的内容?
下面是代码:
class LinkedList {
Node first;
Node getNode(){
return new Node();
}
class Node{
Node next;
int value;
}
void add(int value){
Node n=this.getNode();
n.value=value;
n.next=null;
if (first==null){
first=n;
} else{
first.next=n;
}
}
}
public class LinkedListTest{
public static void main(String[] args) {
LinkedList list=new LinkedList();
java.util.LinkedList<Integer> list1=new java.util.LinkedList<>();
list1.add(3);
list1.add(4);
list.add(1);
list.add(2);
System.out.println(list);
System.out.println(list1);
}
}
【问题讨论】:
-
LinkedList类需要一个toString()函数。您要添加的对象的类也需要一个。在这种情况下,您正在添加已经具有toString()的Integer对象。
标签: java list java-8 linked-list tostring