2013-03-18 154 views
0

我一直在努力與Java,並希望在2-d陣列12X2來存儲數據, 下面顯示的是存儲數據的方式: enter image description here將數據存儲到二維數組

下面是該代碼我建的,但不幸的是我得到異常

java.lang.ArrayIndexOutOfBoundsException: 4

String[][] netswtich=new String[12][2]; 

for(int i =0;i<4;i++) 
       { 
        for(int j=4;j>0;j--) 
        { 
         if(i==j) 
         { 
          continue; 
         } 
         netswtich[k][0]=ranArray[i]; 
         netswtich[k][1]=ranArray[j]; 
         k++; 
        } 
       } 
+0

我認爲問題出在ranArray [012] 你不顯示什麼是在ranArray中,也不是什麼k的開始值是... – 2013-03-18 08:14:08

+0

它會導致異常,因爲在你的數組中,你已經使用了大小數組爲12即ie我會咕到0-11但第二維你已經使用2即ie j將去0-1,但你是比較j == 4 – 2013-03-18 08:14:35

+0

和你是如何初始化ranArray?你可能會在ranArray [4] – Marco 2013-03-18 08:14:52

回答

4

我猜你得到數組越界Ø如果矢量的大小是4,則應該運行數組4應該從3到0開始j for(int j=3;j>=0;j--)

+0

感謝它的工作...... – 2013-03-18 08:39:05

0

這意味着您要訪問不存在的數組元素,例如,你想訪問ranArray [4],而ranArray只保存4個(或更少的元素),這意味着3是最後一個可用的數組元素。

+0

但爲什麼它不能容納5個元素..我的意思是從0 1 2 3 4 – 2013-03-18 08:19:05

+0

如果你將它定義爲「String [] ranArray = new String [4];」這意味着它可以容納四個要素。但是因爲我們從0開始計數而不是1,這意味着3實際上是第四個(也就是最後一個)元素:ranArray [0] ranArray [1] ranArray [2] ranArray [3]是四個可用元素。如果你需要更多,只需將4定義爲5(或其他任何你需要的)。 – hunger 2013-03-18 08:36:59