2014-02-16 2 views
1

adj을 초기화해야한다고는하지만 작동하지 않습니다. 나는 뭔가 잘못되었다는 것을 알고 있습니다. 나는 또한 ArrayList 내에서 ArrayList를 사용하여 시도했는데 그 중 하나도 작동하지 않았다. 너 뭐 잘못 생각해? 당신이 정말 배열ArrayList의의를 원하는 가정인접성 목록에 노드를 추가 할 수없는 이유는 무엇입니까?

import java.util.ArrayList; 
import java.util.List; 
import java.util.Scanner; 



public class AdjacencyList { 

    public static void main(String[] args) { 

     Scanner in = new Scanner (System.in); 
     System.out.println("Enter nodes below like (u,v):"); 

     //Create List 
     ArrayList<Integer>[] adj; 


     for (int i=0; i<2; i++) { 
      String nodes = in.nextLine(); 
      String[] data = nodes.split(","); 

      String u = data[0]; 
      String v = data[1]; 
      int inNode = Integer.parseInt(u); 
      int outNode =Integer.parseInt(v); 

      adj[inNode] = new ArrayList<Integer>(); 
      adj[inNode].add(outNode); 
      System.out.println("Added to list"); 

     } 

     //print nodes and then their corresponding list 
     System.out.println(adj[1]); 




    } 

} 
+0

'ArrayList를 [] 형용사를, '당신은 확실히 당신이'의 배열을 원하는 ArrayList's? – Maroun

+0

아니, 이건 너무 비싸지는 않을거야. –

+1

하지만 그건 당신이하는 일입니다. – Maroun

답변

1

, 당신은 다음과 같이 초기화한다 :

ArrayList<Integer>[] adj = (ArrayList<Integer>[]) new ArrayList[SIZE]; 
+1

형식이 일치하지 않습니다. 루프에서 반복적으로 각 고유 노드에 대한 ArrayList를 만들어야하므로 adj [inNode] = (ArrayList []) new ArrayList [2]; –

+0

이 줄에는 * 형식이 일치하지 않아야합니다 *. 루프의 각 배열 요소를 초기화합니다. 그러나 * 배열 *도 초기화해야합니다! – Maroun

+0

나는 그것을했다, 작동하지 않는다. 유형 불일치가 루프 초기화 프로세스 중에 나타나고 원래 문제였습니다. –

관련 문제