当前位置: 首页 > 面试题库 >

LinkedList Java遍历和打印

吕高寒
2023-03-14
问题内容

如果您能帮助回答以下问题,我将不胜感激:

我已经使用Java以非常标准的方式创建了一个自定义链接列表。以下是我的课程:

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);
       }
   }


}

我试图打印值我已经插入到列表如下

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();

        }


    }

但是我从IDE获得的输出是

linklist.Node@137bd6a1
linklist.Node@2747ee05
linklist.Node@635b9e68
linklist.Node@13fcf0ce

为什么打印出引用,而不打印出诸如bat,ant,rat …之类的字符串的实际值?

如果我想打印出实际值,那该怎么办?

非常感谢你


问题答案:

您的linkedList课程已经Node为您创建了!

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();
}

将打印

foo
bar


 类似资料:
  • 问题内容: 我无法从fetchAll获取数据以选择性打印。 在普通的mysql中,我这样做: 在PDO中,我遇到了麻烦。我绑定了参数,然后将获取的数据保存到上述的$ rs中,目的是以相同的方式循环遍历它。 现在出现了麻烦部分。我如何在PDO上做些什么来获得与上述while循环匹配的东西?我知道我可以使用print_r()或dump_var,但这不是我想要的。我需要做以前可以使用普通mysql进行的

  • 本文向大家介绍C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法,包括了C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 给定一个数组,构建二叉树,并且按层次打印这个二叉树

  • //执行顺序遍历的递归方法

  • 我的数组正在加载,并且正在按计划(按照它们在文件中出现的顺序)将卡打印出来。当我尝试在单独的方法中循环遍历arraylist以检查数据是否存在时,它只打印最后一个对象而不是每个对象。有人能告诉我为什么吗? 加载法 和getAll()方法 运行时,它只打印出.txt文件中的最后一张牌“KS”(黑桃之王)。有人能告诉我为什么会这样吗? 谢谢 }

  • 我正试图弄清楚如何使用树遍历来唯一地识别一棵树,问题的关键似乎是这棵树是香草二叉树(BT),还是它也有更严格的规定二进制搜索树(BST)。这篇文章似乎表明,对于BT,单一的顺序、前序和后序遍历不会唯一地识别树(在这种情况下唯一地意味着键的结构和值)。以下是文章的快速摘要: BTs 1。我们可以用前序-序和后序-序唯一地重构BT。 2。如果我们还规定遍历跟踪节点的空子节点,那么我们也可以使用前序后序