【问题标题】:Storing objects in link lists在链接列表中存储对象
【发布时间】:2012-01-13 12:49:42
【问题描述】:

有人要求我在不使用 java util 的情况下从头开始创建和管理链接列表。

如果我要创建一个具有多个属性的对象,例如name & age 那么是否可以将对象存储在链接列表中?

我很难理解这一点,希望能提供任何帮助!

这是我的伪代码:

类: 节点 列表 人 地址

add_person
sout "Enter name"
scan.next(String name)
pass name to setName (a Person class function)
sout "Enter postcode"
scan.next(String postCode)
pass postCode to setPostCode (a Address class function)

然后我将如何在同一个链接列表中将这两个信息链接在一起?

编辑:感谢您的意见,我会根据您的建议好好阅读!再次非常感谢! :)

【问题讨论】:

  • 谁会让你做这种可怕的事情?是时候摆脱这种关系了!
  • 如果这是家庭作业,应该这样标记。
  • 我认为这是家庭作业并标记为这样。不太可能有任何其他原因。

标签: java linked-list


【解决方案1】:

您应该编写自己的使用泛型的 LinkedList;让它处理任何对象类型。

您的姓名、邮政编码、年龄等应该封装在一个可以添加到 LinkedList 的对象中。

package linkedlist;

public class Node<T> {
    private Node<T> prev;
    private Node<T> next; 
    private T value;
}

【讨论】:

  • 学习经验我猜 :) 了解链表比实施链表更好吗?
【解决方案2】:

首先,您需要定义一个链表的基本构建块,即 Node.js。节点就像存储你想要的任何东西的容器。这就是为什么storedData 变量是Object 类型的原因。你可以这样定义它:

public class MyNode{
Object storedData; // this is a reference to the object that you want stored in the list
MyNode next; //this is a reference to the next node in your list
...
}

然后你可以定义你的链表类,如下所示:

public class MyLinkedList{
 MyNode head; //this is a reference to the top element of your list
 int nodeCount // 
 //put all the requkired methods here
}

【讨论】:

    【解决方案3】:

    尝试查找链表是什么以及需要如何构建它。您的伪代码与链表无关,只是一些基本的数据输入。我建议您查看以下链接以了解它是什么以及它是如何工作的。一旦你了解了结构,实际的编码就相当简单了。

    我鼓励其他人不要为你做作业。

    Wikipedia

    【讨论】:

      【解决方案4】:

      这并不难,您只需要创建自己的 Node 类即可。这个类可能看起来像这样:

      public class Node{
          protected String name;
          protected int age;
          //any additional data you need...
          protected Node next;
      
          //methods...
      

      此类将包含许多数据字段,并提供与这些字段交互的方法。关键组件是“下一个受保护节点”;行,它是链表中的下一个节点。列表中的所有节点都会有一个下一个节点,除了尾部。尾节点将设置 next 等于 null。

      【讨论】:

      • 请不要把数据结构和数据混在一起。姓名、年龄等不是 Node 类的成员。
      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      相关资源
      最近更新 更多