2013-04-07 4 views
0

하나씩 요소를 푸시해야합니까? 같은 것을 시도했습니다자바로 배열 된 벡터를 초기화하는 방법은 무엇입니까?

String[] array; 
array=... 
Vector<String> vector = new Vector<String>(array); 

그러나 이클립스는 오류로 표시합니다.

+3

를 사용

'Vector'의 사용은 요즘 대부분 낙심하고 있습니다. 아마'ArrayList'를 선호 할 것입니다. –

+0

http://stackoverflow.com/questions/1116636/java-convert-object-array-to-vector – sikander

+0

'작동하지 않음'을 정의하십시오. – Perception

답변

10

Vector에는 배열을 직접 허용하는 생성자가 없습니다. array 유형 String[]의 가정하면

, 당신은 동기화 방법을 갖는 오버 헤드를 가지고 있지 않는 한 ArrayList를 사용하는

Vector<String> vector = new Vector<String>(Arrays.asList(array)); 

더 잘 할 수 있습니다. 사용할 수 있습니다

List<String> list = new ArrayList<>(Arrays.asList(array)); 

이렇게하면 변경 가능한 모음도 생성됩니다.

+0

'array'는'String'이다. –

+1

또는 더 나은 아직'목록 목록 = 새로운 벡터 (Arrays.asList (array));', 또는 더 나은 아직'List list = new ArrayList (Arrays.asList (array)); –

0

나는 '하나 하나'라는 뜻을 100 % 확신하지 못합니다. 기존 컬렉션을 벡터에 추가하려면 this을 사용할 수 있습니다.

하나씩 수행하려면 항목을 반복하고 Vector의 'add'메서드를 호출해야합니다.

for(String item: array) { 
    vector.add(item); 
} 
+0

나는 그것을 하나씩하는 것을 피하려고 노력했다. 어쨌든 고마워. – Elderry

3

the documentation이 보여 주므로 어레이를 인수로 사용하는 Vector 생성자가 없으므로 작동하지 않습니다. 당신은 그냥 비 수정 목록을 원하는 경우에, 당신은 정말 벡터를 원하는 (그러나 벡터가 사용되지 않습니다 때문에, 대신 ArrayList를 사용해야합니다) 경우,

List<String> list = Arrays.asList(array); 

를 사용 FYI

Vector<String> vector = new Vector<String>(Arrays.asList(array)); 
관련 문제