Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Заполнить двумерный массив числами |
Автор: hayaname 19.12.2012, 10:12 | ||
Уважаемые, форумчане! Прошу Вашей подсказки по реализации такого алгоритма: Дана, к примеру матрица 5 на 5: int width = 5; int hight = 5; byte[][] matrix = new byte[this.hight][this.width]; Данный массив (matrix) нужно заполнить 0 и 1 по массиву mass: int[] mass = {2, 0, 3, 1 и тд} Массив mass формируется по алгоритму RLE, то есть последовательность: 00111 будет записана как - 2 0 3 1, то есть первое число это количество символов, а второе число - каких именно символов. Так вот вопрос - как заполнить массив matrix по массиву mass: Думал сделать так: Код:
Но выбрасывает с этой ошибкой: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExce ption: 4 Надеюсь на помощь |
Автор: 4epT 19.12.2012, 11:28 |
Заполнять нужно последовательно ? Или по какому то принципу ? |
Автор: hayaname 19.12.2012, 11:37 |
4epT, последовательно |
Автор: 4epT 19.12.2012, 12:11 | ||
Как то так: matrix - матрица которая будет заполняться. arr - массив по которому будет заполняться матрица.
|
Автор: hayaname 19.12.2012, 13:13 | ||
4epT, Только не пойму вот этого места:
Зачем два раза проверка такая? |
Автор: 4epT 19.12.2012, 13:19 |
Это такая ситуация когда кол-во значений которое еще нужно добавить (count) еще не 0, но нужно сделать перевод на новую строку. Это можно все оптимизировать, но я над этим не замрочивался) |
Автор: hayaname 19.12.2012, 13:33 | ||
4epT, Понятно, тогда последний вопрос?))
Используется int width = matrix[0].length; - то есть пока k меньше ширины строки...так как матрица n*n - то получается нет смысла использовать int width = matrix[height].length; Так? |
Автор: 4epT 19.12.2012, 13:41 |
Если матрица n*n, то да. |