2014-12-21 2 views
3

기본 질문과 같지만 실제로 혼란 스럽습니다. 나는 그래프의 인접성리스트를 표현하려한다.목록 배열 표현하기

public class Graph 
{ 
    private final int V; 
    private List<Integer>[] adj; 

    public Graph(int V) 
    { 
     this.V = V; 
     this.adj = (List<Integer>[]) new LinkedList[V]; // this works 
    } 
} 

질문 1 : 나는이 개 질문이 내가 아래를 수행 할 때, 그것은

Array type expected; found: 'java.util.LinkedList<java.lang.Integer>' 
this.adj = (List<Integer>[]) new LinkedList<Integer>()[V]; 

내가 바로, 정수 배열의 목록을 만드는 오전 없다는 오류를 준다?

질문 2는 :

this.adj = (List<Integer>[]) new LinkedList<Integer>[V]; 

마지막 두 가지 접근 방식의 문제는 무엇인가 :이 작업을 수행 할 때, 다시 일반적인 배열 생성을 말하는 오류를 준다? 나는 첫번째 것이 더 정확하다고 생각한다.

+0

어떤 유형이'this.adj'입니까? – FlyingPiMonster

+0

개인 목록 [] adj; – OneMoreError

답변

4

에서 (1) 표현식은, LinkedList 갓 만든 따라서 에러 인덱스하려고

(new LinkedList<Integer>())[V] 

로서 해석되고있다.

(2)에서 generics 배열을 만들려고합니다. You can't do this. 대신 일부 컨테이너 유형 (예 : ArrayList<List<Integer>>)을 사용하는 것이 좋습니다.

+0

(2)에서 Generics 배열을 어떻게 만들 수 있습니까? 나는 Integers의 배열을 만들고있다. – OneMoreError

+0

정수의 배열을 만들고 있지 않습니다. 정수의 배열 배열을 만들고 있습니다. 후자는 generics입니다. – nneonneo