java 遍历打印list,LinkedList Java遍历和打印

I would really appreciate if you can help to answer to this question:

I have already created a custom linked list myself in a very standard way using Java. Below are my classes:

public class Node {

private Object obj;

private Node next;

public Node(Object obj){

this(obj,null);

}

public Node(Object obj,Node n){

this.obj = obj;

next = n;

}

public void setData(Object obj){

this.obj = obj;

}

public void setNext(Node n){

next = n;

}

public Object getData(){

return obj;

}

public Node getNext(){

return next;

}

}

public class linkedList {

private Node head;

public linkedList(){

head = null;

}

public void setHead(Node n){

head = n;

}

public Node getHead(){

return head;

}

public void add(Object obj){

if(getHead() == null){

Node tmp = new Node(obj);

tmp.setNext(getHead());

setHead(tmp);

}else{

add(getHead(),obj);

}

}

private void add(Node cur,Object obj){

if(cur.getNext() == null){

Node tmp = new Node(obj);

tmp.setNext(cur.getNext());

cur.setNext(tmp);

}else{

add(cur.getNext(),obj);

}

}

}

Im trying to print value i have inserted into the list as below

public static void main(String[] args) {

// TODO code application logic here

Node l = new Node("ant");

Node rat = new Node("rat");

Node bat = new Node("bat");

Node hrs = new Node("hrs");

linkedList lst = new linkedList();

lst.add(l);

lst.add(rat);

lst.add(bat);

lst.add(hrs);

Node tmp = lst.getHead();

while(tmp != null){

System.out.println(tmp.getData());

tmp = tmp.getNext();

}

}

but the output i got from the IDE is

linklist.Node@137bd6a1

linklist.Node@2747ee05

linklist.Node@635b9e68

linklist.Node@13fcf0ce

why does it print out the reference but not the actual value of the string such as bat,ant,rat... ?

If i want to print out the actual value then what should i do?

Thank you very much

解决方案

Your linkedList class already creates the Nodes for you!

linkedList list = new linkedList();

list.add("foo");

list.add("bar");

Node tmp = lst.getHead();

while(tmp != null){

System.out.println(tmp.getData());

tmp = tmp.getNext();

}

Will print

foo

bar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值