2012-07-31 3 views
0

Я создал свой собственный собственный Linked List (код ниже). Теперь я не могу понять, как создать массив этого Связанного списка, например LinkedList[] l = new LinkedList[10]. Может кто-нибудь мне помочь.Java - Пользовательский связанный список Проблема

class Node { 
     public int data; 
     public Node pointer; 
} 

class LinkedList { 
     Node first; 
     int count = 0; 

     public void addToEnd(int data){ 
      if(first == null){ 
        Node node = new Node(); 
        node.data = data; 
        node.pointer = null; 
        first = node; 
        count = 1; 
        return; 
      } 
      Node next = first; 
      while(next.pointer != null){ 
        next = (Node)next.pointer; 
      } 
      Node newNode = new Node(); 
      newNode.data = data; 
      newNode.pointer = null; 
      next.pointer = newNode; 
      count++; 
     } 

     public Node getFirst(){ 
      return first; 
     } 
     public Node getLast(){ 
      Node next = first; 
      while(next.pointer != null) 
        next = next.pointer; 
      return next; 
     } 


     public int[] get(){ 
     if(count != 0){ 
      int arr[] = new int [count] ; 
      Node next = first; 
      int i = 0; 
        arr[0]= next.data; 
      while(next.pointer != null){ 
        next = next.pointer; 
        i++; 
        arr[i] = next.data; 
      } 
      i++; 
      return arr ; 
      } 
      return null ; 
     } 
     public int count(){ 
      return count; 
     } 
} 
+0

Какая ошибка возникает при попытке создать список? –

+4

Что случилось с 'new LinkedList [10]'? – Jeffrey

+0

@DougRamsey, LinkedList [] l = новый LinkedList [2]; для (int i = 0; i <10; i ++) l [0] .addToEnd (i); int arr [] = l [0] .get(); System.out.println (arr [0]); дает ошибку. – Arpssss

ответ

4

Я собираюсь предположить, что ваша проблема только, что, когда вы создаете массив объектов, как

LinkedList[] lists = new LinkedList[10]; 

вы получите массив полный null с; вам необходимо создать объекты для хранения в массиве:

for (int i=0; i<lists.length; ++i) 
    lists[i] = new LinkedList(); 
+0

Отлично работает. Благодарю. – Arpssss

+2

Для массивов объектов, я вижу, что объявление массива похоже на сборку ящиков и выражение «Эй, я собираюсь хранить в нем <* некоторый объект *>). На самом деле я ничего не вкладывал в они все же, но когда я это сделаю, они будут <* некоторым объектом *> s " –

Смежные вопросы