2013-04-21 3 views
0

Java (단일 순환)의 LinkedList에있는 노드에 다중 int를 추가하는 방법을 배우는 것이 궁금했습니다. 나는 실에 스레드를 발견하고 그것을 읽고 있었지만 어떻게 작동하는지 정확히 알지 못했습니다. 내가 대답을 얻을 수 있는지보기 위해 나는이 질문을 되 살릴 것이라고 생각했다.단일 노드에 저장된 여러 변수 java 연결된 목록

이 내 노드 클래스입니다

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 
} 

이것은 내가 지금까지 가지고 있지만 내가 입력에 두 가지의 int를하려고 할 때이 private int time에서 널 포인터 예외 내가 뭔가 잘못하고 있습니까 얻을 무엇인가? 파일을 읽은 다음 단일 노드에 두 개의 int를 저장 한 다음 파일을 완전히 읽을 때까지 동일한 작업을 수행합니다. 나는 파일을 읽고 괜찮아요 및 int ints 파일로 저장되어 있지만 두 노드가 int 아직 노드에서 저장할 수 없습니다.

+0

제시된 코드에는 아무런 문제가 없습니다. 그냥'Node' 클래스를'static'으로 만드십시오. 또는'LinkedList'를'Node'에서 참조해야합니까? 목록 개체를 채우는 코드를 추가하십시오. –

답변

2

head 어떻게 초기화 했습니까? Node head = new Node()을 했습니까?

사용자 지정 생성자를 만들면 Java는 더 이상 기본 생성자를 추가하지 않습니다. 다시 정의해야합니다.

대신 할 수 있습니다. Node head = null;

+0

그는 괜찮습니다. 그는'head'에서'null '을 올바르게 처리합니다. –

+0

머리를 쓰는 것과 함께 잘 = null 이제는 잘 작동합니다. – kevorski

+0

@kevorski 이것은 참이 될 수 없습니다. 초기화되지 않은 참조는'null'입니다 –

관련 문제