2017-04-20 3 views
1

컬렉션을 사용하여 Java에서 연결된 목록의 벡터를 만드는 방법은 무엇입니까? 링크 된 목록의 벡터

Vector <LinkedList <Integer> > adj = new Vector<>(); 

그러나 내가 연결리스트의 헤드 노드와 벡터를 초기화하는 방법을 알아낼 수 없습니까 : 지금까지 나는 다음과 같은 코드를 작성했습니다.

, i는 헤드 노드로 N-1로 값을 0으로 벡터를 초기화 할 내가 뭘 정수 N 주어 원하는 : 그래서

e.g given N = 4 

vector ---> 0 
      1 
      2 
      3 

나중에 내가 목록 경우에 구성원을 추가 할 수 있습니다 같은 필요 : 당신이 작성한 코드와

vector ---> 0->2->3 
      1->3 
      2->0->1 
      3->1 
+2

'Vector'를 만든 다음 필요에 따라 빈'LinkedList' 개체를 추가하십시오. 하지만 먼저, 왜 '벡터'를 사용하고 있습니까? 이것은 [XY 문제] (http://xyproblem.info)와 같이 무시 무시한 냄새가납니다. –

+0

이것은 @ JimGarrison의 코멘트 wrt에 대한 설명입니다. '벡터 '. 'Vector'의 Javadoc에서 : [ "thread-safe 구현이 필요하지 않은 경우 Vector 대신 ArrayList를 사용하는 것이 좋습니다."] (https://docs.oracle.com/javase/) 8/docs/api/java/util/Vector.html) – Turing85

답변

1

, 당신은 빈 벡터를 만든 - 당신이 LinkedList의 인스턴스의 원하는 번호를 입력해야합니다 (난 당신이, ++ 어디 벡터 프로그래머는 C입니다 추측하고있다 "automat를 초기화 할 것입니다 ically "?). 예 : 이처럼 벡터를 초기화 : Turing85가 지적한대로 동기화가 필요하지 않은 경우

int N = 4; 
Vector<LinkedList<Integer>> adj = new Vector<>(N); // N here isn't really needed, but it sets the initial capacity of the vector 
for (int i = 0; i < 4; i++) { 
    ajd.add(new LinkedList<>()); 
} 

또한, 당신은 ArrayList를 사용해야합니다.