如何将读取用户输入关联到多个链接列表中?

时间:2013-03-27 21:18:57

标签: java linked-list user-input

所以现在我正在编写一个程序来接受用户输入,例如:

  • “杰夫”的名字
  • “Henderson”的姓氏
  • 与他们联系的电话号码
  • 将存储在其银行帐户中的金额

并将其全部存储到链接列表中。

如果我要添加具有此类似信息的其他人,如何将其存储在链接列表中,以便我可以单独访问这两个人的信息?

现在,我正在使用此功能在输入新用户时建立所有存储空间:

private final Scanner keyboard;

private final LinkedList<String> firstName;
private final LinkedList<String> lastName;
private final LinkedList<String> teleNumber;
private final LinkedList<String> accountBalance;

public bankdata() 
{
    this.keyboard = new Scanner(System.in);
    this.firstName = new LinkedList<String>();
    this.lastName = new LinkedList<String>();
    this.teleNumber = new LinkedList<String>();
    this.accountBalance = new LinkedList<String>();
}

我计划使用keyboard.next();来读取用户输入,然后使用我编写的add方法将信息存储到每个链接列表中。

它的设置方式是每个对象变量都有一个链接列表,如:

  • 名字的链接列表
  • 最后一个
  • 的链接列表
  • 电话号码的链接列表
  • 帐户余额的链接列表

如果我想调用与某个特定人员相关的信息,当我向用户请求信息时,如果他们在另一个链接列表中,我可以看到他所有的东西,我该怎么办呢?

3 个答案:

答案 0 :(得分:2)

这里的事情是创建自己的数据结构。我会对LinkedList进行更多研究。几乎每个在线列表示例都可以帮到你。

提示:为您的节点创建一个类,并存储与该节点中每个人有关的所有信息。

编辑:只是为了完成答案:How do I create a Linked List Data Structure in Java?

编辑2 :根据您编辑的OP,我认为您希望拥有4个LinkedLists,并查找一个人的所有信息。我假设你要按人名搜索(如果不是,那个过程就是相同的)。而且,假设一个人的信息存储在正确的相应节点处。因此,person1包含所有4个列表的第一个节点中的所有信息,person2所有节点都位于“index”1。

因此,您开始搜索LinkedList存储名称,并在找到名称后立即停止(如果未找到则抛​​出错误)。还要跟踪您看到的节点数量。这将是获取所有其他列表信息所需的索引。

现在,使用for循环,在其余3个列表中遍历适当的次数,并返回遇到的值。

答案 1 :(得分:0)

将所有数据组合在一个类中然后使用Hashtable作为您的数据结构会更容易,你应该在网上找到很多关于Hashtable的资源,也可以查看http://javarevisited.blogspot.com/2012/01/java-hashtable-example-tutorial-code.html。关于获取输入..您可以将它存储在数组中,因为变量的数量是固定的,然后使用Arrays.toList()将其转换为列表,并且可能使用循环内的开关来初始化变量。请注意,哈希表结构有其他选择,但我建议你以后想要检索你的数据,它可能会变大。

答案 2 :(得分:0)

这是典型的Primitive Obsession

您应该使用Object来保存数据。它会更灵活,更易于使用。