Как заполнить двумерный массив в Java
Не могу понять, как заполнить двумерный массив цифрами от 1 до 8 размерностью 8 на 8, кроме как заполнить его вручную. Но это очень не эффективно. Как сделать?
Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 2 янв 2018 в 4:48
159 1 1 золотой знак 1 1 серебряный знак 10 10 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
public class Main < public static void main(String[] args) < int[][] arr = new int[8][8]; for (int i = 0; i < arr.length; i++) < for (int j = 0; j < arr[i].length; j++) < arr[i][j] = j + 1; >> for (int[] anArr : arr) < for (int anAnArr : anArr) < System.out.print(anAnArr + " "); >System.out.println(); > >
Отслеживать
ответ дан 2 янв 2018 в 5:32
331 1 1 серебряный знак 7 7 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как заполнить двумерный массив java рандомными числами
Заполнить двумерный массив рандомными числами можно разными способами. Можно использовать вложенные циклы или стримы. Рассмотрим вариант со стримами:
int rows = 2; // Количество строк массива int columns = 3; // Количество колонок int[][] array = new int[rows][columns]; // Создаем двумерный массив с заданной размерностью Random random = new Random(); // Создаем объект для генерирования рандомных чисел IntStream.range(0, rows) // С помощью стрима проходим по всем строкам .forEach(row -> IntStream.range(0, columns) // В каждой строке проходим по всем колонкам // Заносим рандомное число в ячейку массива .forEach(column -> array[row][column] = random.nextInt(11))); // Выводим двумерный массив в консоль System.out.print(Arrays.deepToString(array)); // => [[7, 2, 9], [8, 0, 3]]
Как правильно заполнить многомеремный массив?
Всё шло гладко, пока однажды на меня не свалилось задание нарисовать из иксов один большой икс. Я смог сделать это через цикл, однако преподаватель сказал попробовать использовать в этом задании многомерный массив, после чего я окончательно запутался.
class Loader < public static void main(String[] args) < int size = 7; String [] [] array = new String[size-1][size-1]; for (int i = 1; i < size; i++) < for (int j = 1; j < size; j++) < .// заполнить массив >> for (int i = 1; i < size; i++) < for (int j = 1; j < size; j++) < // распечатать массив >> > >
- Вопрос задан более трёх лет назад
- 1710 просмотров
Комментировать
Решения вопроса 1
Koshkasobaka @Koshkasobaka
Не поняла почему при объявлении массива ты указываешь его размер как [size-1][size-1], тебе нужен массив 6×6 или 7×7? В моем примере будет 7×7. В качестве переменных String не нужен, тебе же всего один символ нужен, поэтому лучше использовать сhar
Заполняем:
char[][] array = new char[size][size]; char tic = 'x'; for (int i = 0; i < array.length; i++) < for (int j = 0; j < array.length; j++) < if (j == i || j == array.length - 1 - i) array[i][j] = tic; >>
Выводим на экран в виде матрицы:
for (int i = 0; i < array.length; i++) < for (int j = 0; j < array[i].length; j++) < System.out.print(array[i][j] + " "); >System.out.println(); >
Ответ написан более трёх лет назад
Нравится 3 2 комментария
agenda_nati @agenda_nati Автор вопроса
Большое спасибо
Тут же вложенный цикл не нужен, достаточно в for i присвоить значения array[i][i] и array[i][size-i]
Ответы на вопрос 1
В двумерном массиве «Х» — это две большие диагонали. Их заполнить можно без вложенных циклов:
public void fillX(String[][] array) < for (int i=1; i>
Привыкай использовать методы, пригодится уже довольно скоро.
С выводом все просто: используем во вложенном цикле print, чтобы не было перехода на новую строку, и println без параметров для начала новой строки во внешнем цикле.
Я намеренно не пишу код, а описываю его словами, чтобы у тебя была возможность написать самому и потренироваться.
Заполнить двумерный массив
Создать двумерный массив и заполнить его 1 и 0 в шахматном порядке
Создать двумерный массив и заполнить его 1 и 0 в шахматном порядке. Вывести на экран в виде матрицы.

Создать двумерный массив, опираясь на другой двумерный массив
У меня есть такой массив 0 0 0 0 0 0 0 6 3 2 2 8 9 3 7 6 8 3 4 5 1 0 .

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно.
Двумерный массив. Заполнить одномерный массив суммой значений элементов строк
Помогите, пожалуйста!=( Дан двумерный массив. Заполнить одномерный массив суммой значений.
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
Чёрт возьми, ну тут-то что непонятно?
Сообщение от Gungala 
тут-то что непонятно?
Вот подходят к тебе и говорят — а ты в курсе, что мы изучаем джаву уже год почти, и в понедельник нужно сдать 20+ задач?
| Меню пользователя @ iSmokeJC |
iSmokeJC, я бы сразу пошёл забирать документы 😀
| Меню пользователя @ Goongala |
| Посетить домашнюю страницу Goongala |
| Читать блог |
2495 / 1944 / 486
Регистрация: 17.02.2014
Сообщений: 9,239
Михаил 091, а так, не хош?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import java.util.Arrays; public class Helper { public static void main(String[] args) { int [][] twoDimArr = new int[5][]; for (int i = 0; i twoDimArr.length; i++) { twoDimArr[i] = getArr(7, i*7 + 11, (i % 2 == 0)); System.out.println(Arrays.toString(twoDimArr[i])); } } private static int[] getArr(int lengthArr, int begin, boolean direction) { int[] ret = new int[lengthArr]; int a; a = (direction) ? 0 : ret.length - 1; for (int i = ret.length - 1; i >= 0; i--) { ret[Math.abs(a - i)] = begin++; } return ret; } }
1240 / 853 / 264
Регистрация: 02.04.2009
Сообщений: 3,225
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
public class Start { public static void main(String[] args) { int max = 120; int[][] array = new int[max / 10][10]; boolean dir = true; for (int i = 0; i array.length; i++) { if (dir){ for (int j = 0; j array[i].length; j++) { array[i][j] = max--; } dir = false; } else { for (int j = array[i].length - 1; j >= 0; j--) { array[i][j] = max--; } dir = true; } } // Output for (int i = 0; i array.length; i++) { for (int j = 0; j array[i].length; j++) { System.out.printf("%3d ", array[i][j]); } System.out.println(); } } }
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
import java.util.Arrays; import java.util.function.Function; import java.util.function.IntBinaryOperator; import java.util.function.IntPredicate; import java.util.stream.IntStream; import java.util.stream.Stream; public class getSomeOneMatrix{ public static void main(String[] args){ Integer[][] matrix = getMatrix(120,19,2,(i,j) -> i%2==0?i-j:i+j); print(matrix); } public static Integer[][] getMatrix(int start, int skipFrom, int skipTo, IntBinaryOperator m) public static void print(Integer[][] a) { for(Integer[] l : a) System.out.println(Arrays.toString(l)); } }
[120, 119, 118, 117, 116, 115, 114, 113, 112, 111] [119, 120, 121, 122, 123, 124, 125, 126, 127, 128] [118, 117, 116, 115, 114, 113, 112, 111, 110, 109] [117, 118, 119, 120, 121, 122, 123, 124, 125, 126] [116, 115, 114, 113, 112, 111, 110, 109, 108, 107] [29, 30, 31, 32, 33, 34, 35, 36, 37, 38] [28, 27, 26, 25, 24, 23, 22, 21, 20, 19] [27, 28, 29, 30, 31, 32, 33, 34, 35, 36] [26, 25, 24, 23, 22, 21, 20, 19, 18, 17] [25, 26, 27, 28, 29, 30, 31, 32, 33, 34] [24, 23, 22, 21, 20, 19, 18, 17, 16, 15] [23, 24, 25, 26, 27, 28, 29, 30, 31, 32] [22, 21, 20, 19, 18, 17, 16, 15, 14, 13] [21, 22, 23, 24, 25, 26, 27, 28, 29, 30] [20, 19, 18, 17, 16, 15, 14, 13, 12, 11] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
