Как вы проходите int [] []? - PullRequest
       3

Как вы проходите int [] []?

0 голосов
/ 09 ноября 2010

Я пытался сделать:

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

, но это не работает: (

Ответы [ 3 ]

8 голосов
/ 09 ноября 2010

Просто внесите в матрицу индекс, используя вашу текущую строку.

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

Это даже учитывает вероятность наличия зубчатого массива (т. Е. Матрицы с несовместимым числом строк встолбец).

5 голосов
/ 09 ноября 2010
for (int i=0; i<matrix.length; i++) {
    for (int j=0; j<matrix[i].length; j++) {
2 голосов
/ 09 ноября 2010
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++) {
...