Интервал Java [] [] массив - итерация и нахождение значения

Я думаю, что причина, по которой axios раскрывает как onUploadProgress, так и onDownloadProgress, заключается в том, что вы можете легко выполнить некоторые вычисления переданных байтов. В случае простого запроса к серверу я думаю, что использование флага, такого как установка на

state = {
  loading: false
}

, и переключение на true всякий раз, когда вы делаете свой запрос, является идеальным. Вы можете использовать блесну в качестве маски, если хотите.

8
задан Michael Myers 23 January 2009 в 20:59
поделиться

7 ответов

Можно выполнить итерации или с для циклов или с улучшенный для циклов:

for (int row=0; row < grid.length; row++)
{
    for (int col=0; col < grid[row].length; col++)
    {
        int value = grid[row][col];
        // Do stuff
    }
}

или

// Note the different use of "row" as a variable name! This
// is the *whole* row, not the row *number*.
for (int[] row : grid)
{
    for (int value : row)
    {
         // Do stuff
    }
}

Первая версия была бы самым легким решением, "находят, что координаты" вопрос - просто проверяют, правильно ли значение во внутреннем цикле.

25
ответ дан 5 December 2019 в 05:35
поделиться

для итерации по значениям используют циклы:

 int[][] matrix   
 //...
 for(int row[] : matrix)
     for(int cell : row){
      //do something with cell
    }

для доступа к координатам на основе значения, Вам был бы нужен своего рода двойной hashmap (посмотрите на java.util. HashMap), но я не знаю ни о чем, что делает так непосредственно

3
ответ дан 5 December 2019 в 05:35
поделиться

Если Ваша сетка не будет отсортирована в некотором роде затем, Вы, вероятно, не сделаете немного лучше, чем поиск грубой силы.

Для итерации я думаю, что это было бы что-то вроде этого (синтаксис мог бы быть прочь немного, я не имел дело с массивами в Java некоторое время.):

int[][] grid;  // just assuming this is already assigned somewhere

for(int x = 0 ; x < grid.length ; x++) {
  int[] row = grid[x];
  for(int y = 0 ; y < row.length ; y++) {
    int value = row[y];
    // Here you have the value for grid[x][y] and can do what you need to with it
  }
}

Для поиска необходимо было бы, вероятно, использовать это, чтобы выполнить итерации, затем возвратиться, после того как Вы нашли его.

Если Вы могли бы искать положение того же значения многократно затем, Вы могли бы хотеть к memoize результаты с помощью хеш-таблицы.

1
ответ дан 5 December 2019 в 05:35
поделиться

Для итерации по всем элементам в сетке пробуют это:

int grid[][] = new int[10][10];

for(int i = 0; i < grid.length(); ++i) {
    for(int j = 0; j < grid[i].length(); ++j) {
        // Do whatever with grid[i][j] here
    }
}
2
ответ дан 5 December 2019 в 05:35
поделиться

Используйте вложенный, чтобы циклы выполнили итерации по размерам X и Y, который позволяет Вам пробежаться через каждое значение по одному.

Для ввода значения просто сделайте то же как выше, но ищите соответствие к своему требуемому значению.

0
ответ дан 5 December 2019 в 05:35
поделиться

Вы будете самыми счастливыми, если Вы заблокируете все эти наборы в едином классе и не выставите их всегда.

Это означает перемещать Ваши стандартные программы поиска и поиска в этот класс также.

Для устройства хранения данных, общей покрытой итерации, добавляют хеш-таблица и поиск. Я поместил этот комментарий к сообщению nickolai:

Сохраните новое Целое число (ix + iy * 1000) как значение в Вашей хеш-таблице. Если Ваш индекс y может перейти 1000, используют большее количество - ints, являются действительно большими. Для получения это назад использует ix=val%1000, iy=val/1000.

Если Ваш массив и хеш-таблица будут инкапсулироваться в том же классе, то остальную часть Вашего кода будет довольно легко записать и намного более чистый.

0
ответ дан 5 December 2019 в 05:35
поделиться

Обычно нет никакого способа найти определенные координаты конкретного значения кроме путем прохождения через массива и поиска его. Однако, если значения в массиве, как гарантируют, будут уникальны (т.е. каждое значение только происходит в одной ячейке), Вы могли поддержать отдельный массив как индекс, который хранит координаты каждого значения, индексированного значением.

-1
ответ дан 5 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: