2012-07-03 5 views
3
Vector v1 = new Vector(); 
for (int i = 0; i < 7; i++){ 
    v1.add(new Vector()); 
} 
Vector WordTemp = new Vector(); 
for (int i = 0; i< 3; i++){ 
    WordTemp.add(v1); 
} 

먼저 3 차원 벡터를 만듭니다. 2 차원으로 색인 된 WordTemp 벡터에 단어를 넣으 려합니다. 이런 코드를 작성할 수 있습니까?자바에서 다차원 벡터를 사용하는 방법?

for (int i = 0; i< 3; i++){ 
    for (int j = 0; j < 7; j++){ 
     ((Vector) ((Vector) WordTemp.get(i)).get(j)).add(word); 
    } 
} 

이 벡터 공간을 생성 한 후. 이런 식으로 읽을 수 있을까요?

...for (int i = 0; i<7; i++){ 
     ListIterator iter2 = ((Vector) ((Vector) WordTemp.get(t)).get(i)).listIterator(); 
     while(iter2.hasNext()){ 
      String CompareStr = (String) iter2.next();.... 
+1

왜 일반 구문을 사용하지 않습니까? 그것은 모든 못생긴 캐스팅을 면도합니다. 그리고 당신이 어떤 스레딩도하지 않는다면 ArrayList로 충분합니다. – nhahtdh

+0

야, 나는 SCJP 6 책의 7 장을 읽으라고 제안한다. 아니면 Oreilly의 generics와 COllections in Java를 생각할 수있다. 위 코드를 효과적으로 작성할 수있는 여러 가지 방법이 있습니다. Joshua Bloch & Gartener는 우리를 위해 물건을 단순화하는 데 소중한 몇 년을 보냈습니다. 그들을 사용합시다. :) 건배 – dharam

+1

초기화 코드에 오류가 있습니다 :'WordTemp.add (v1);'- 이것은'WordTemp' Vector에서'v1'에 동일한 참조를 3 번 ​​추가합니다. 3 개의 벡터는 다른 사람들에게 반사 될 것입니다 (왜냐하면 그것들은 같은 아래에 있기 때문입니다). WordTemp에 삽입 할 벡터가 들어있는 별도의 Vector를 초기화해야합니다. – nhahtdh

답변

7

당신이

첫 번째 방법 instead-이 중 하나를 사용할 수 있습니다 -

Vector<Vector<String>> s = new Vector<Vector<String>>(); 

초 방법 -

Vector<String>[] s = new Vector<String>[5]; 

또는

Vector<String>[][] s = new Vector<String>[5][5]; 
+0

벡터 <벡터 > 새 벡터 <벡터 >(); 좋은 방법입니다. 나는 그것을 시험 할 것이다. – paopao87926

0

시도해보십시오.

Vector[][] s = new Vector[5][5]; 
관련 문제