【问题标题】:multiple variables stored in single node java linked list多个变量存储在单节点java链表中
【发布时间】:2013-04-14 04:13:47
【问题描述】:

我很想知道如何将多个整数添加到 Java 中的 LinkedList 中的节点(单循环)。我在 SO 上找到了一个线程并正在阅读它,但不确定它是如何工作的。我想我会重新提出这个问题,看看我是否能得到答案。

这是我的节点类

public class LinkedList{
private class Node{
    private int pid;
    private int time;
    private Node next;

    public Node(int pid, int time){
        this.pid=pid;
        this.time=time;
    }
}
int size;
Node head;

这是我在执行任何删除或类似操作之前正在尝试的添加。

public void add(int pid, int time) {
    Node curr=head;
    Node newNode=new Node(pid, time);
    if(head==null){
        head=newNode;
            newNode.next=head;
    }//end if
    else{
        while(curr.next!=head){
            curr = curr.next;
        }//end while
        curr.next=newNode;
            newNode.next=head;
    }//end else
    size++;
}//end add
}

这是我到目前为止所拥有的,但是当我尝试输入两个整数时,我在private int time 处得到一个空指针异常我做错了什么吗?我正在读取一个文件,然后将两个整数存储在一个节点中,然后做同样的事情,直到文件被完全读取。我的文件读取得很好,我将两个整数存储为文件中的整数,但我似乎还不能让它将整数存储在节点中

【问题讨论】:

  • 您在提供的代码中没有问题。只需制作Nodestatic。或者您需要从Node 引用LinkedList?添加如何填充列表对象的代码。

标签: java variables nodes singly-linked-list circular-list


【解决方案1】:

你是如何初始化head的?你做了Node head = new Node()吗?

如果您制作自定义构造函数,Java 将不再添加默认构造函数。你必须再次定义它。

你可以改为Node head = null;

【讨论】:

  • @kevorski 这不可能是真的 :) 未初始化的引用是 nulls
  • @ValeriAtamaniouk 无论出于何种原因,它现在都在获取所有输入并将它们存储到 LL 中
  • @ValeriAtamaniouk 我不确定是否有问题,但在 jgrasp 调试中,看起来第二个 LL 是在 LL 中创建的,所有值都相同
  • 它是一个循环链表。也许这就是它无法正确显示的原因。您的添加功能似乎是正确的。
  • 编写自己的显示函数代码,检查是否存储正确
猜你喜欢
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多