2010-11-08 62 views
0

我試着這樣做:如何遍歷int [] []?

for (int i=0; i<matrix.length; i++) { 
    for (int j=0; j<matrix[].length; j++) { 

但是,這並不工作:(

+0

好實際上,如果它是一個方形矩陣,那麼很容易 – Devoted 2010-11-08 22:25:20

回答

8

只是索引使用當前行的矩陣

for (int i=0; i<matrix.length; i++) { 
    for (int j=0; j<matrix[i].length; j++) { 
    // code 
    } 
} 

這甚至在因素。 jagged array的可能性(即列中行數不一致的矩陣)。

5
for (int i=0; i<matrix.length; i++) { 
    for (int j=0; j<matrix[i].length; j++) { 
2
for (int i=0; i<matrix.length; i++) { 
    for (int j=0; j<matrix[i].length; j++) { 

請注意我添加的i

然而,這是最好的緩存兩個長度而循環,從而避免在每次循環重新評估,其在內存中的一個更int的唯一成本(修復仍然適用)節省時間:

for (int i=0, il=matrix.length; i<il; i++) { 
    for (int j=0, jl=matrix[i].length; j<jl; j++) { 
+0

請注意,緩存數組長度將僅在數組不會在循環中調整大小時才起作用。 – Bitsplitter 2010-11-08 22:49:22

+0

的確如此。如果你不改變尺寸,但只是閱讀或寫作,這很好。 – 2010-11-08 22:51:52