Как вывести матрицу java
Матрица – это прямоугольная таблица со строками и столбцами, на пересечении которых стоят значения. В Java матрица может быть представлена двумерным массивом:
Так как массивы в Java имеют ссылочную природу, то обычный способ вывода не сработает, мы не увидим содержимое массива. Чтобы вывести матрицу на экран, нужно сначала получить текстовое представление массива и всех вложенных подмассивов. Это можно сделать при помощи метода Arrays.deepToString()
import java.util.Arrays; int[][] matrix = 1, 2, 3>, 4, 5, 6>, 7, 8, 9> >; System.out.println(Arrays.deepToString(matrix)); // => [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Как вывести матрицу ровно, без смещений
Вывожу двумерный массив (матрицу), но из-за отрицательных чисел она съезжает (на картинке показано). Что можно сделать?
Часть кода, где вывожу двумерный массив:
1 2 3 4 5
for (int i = 0; i mass.length; i++){ for (int j = 0; j mass[i].length; j++) System.out.print(mass[i][j] + " "); System.out.println(); }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Отобразить двумерный массив строго структурировано, без смещений
Добрый день, подскажите, пожалуйста, как сделать так, чтобы элементы двумерного массива.

Как вывести матрицу, но без последнего столбца
Дана матрица: import numpy as np a = np.array(, , , ]) Как ее вывести, но без.

Вывести матрицу, так чтобы каждый элемент выводился ровно один под одним
конкретно в этой программе как это сделать? using System; class Program < static void.

Вывести на экран матрицу без указателей и рандома
Вывести на экран матрицу без указателей и рандома ! 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15
2495 / 1944 / 486
Регистрация: 17.02.2014
Сообщений: 9,238
Сообщение от 14 карат 
System.out.print
разберись с System.out.printf System.out.printf
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 874
14 карат, или используйте символ табуляции \t
2495 / 1944 / 486
Регистрация: 17.02.2014
Сообщений: 9,238
Сообщение от alicesmagic 
символ табуляции \t
да, это еще проще))
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
1 2 3 4 5 6
for (int i = 0; i mass.length; i++) { for (int j = 0; j mass[i].length; j++) { System.out.printf("%4d\t", mass[i][j]); } System.out.println(); }
Gungala, эх ты, украл у человека чувство, что он сам может разобраться((
| Меню пользователя @ Aviz__ |
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
Число после знака процента показывает, сколько мест будет занимать строка. Например, даже если нужно вывести число 4, то оно всё равно будет занимать 4 места: «____4». Можно предварительно пройтись по всему массиву и найти самое длинное число, и только потом вывести весь массив в отформатированном виде
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
int maxLength = 0; String format = ""; int temp = 0; for (int i = 0; i mass.length; i++) { for (int j = 0; j mass[i].length; j++) { temp = String.valueOf(mass[i][j]).length(); if (temp > maxLength) { maxLength = temp; } } } format = "%" + maxLength + "d\t"; for (int i = 0; i mass.length; i++) { for (int j = 0; j mass[i].length; j++) { System.out.printf(format, mass[i][j]); } System.out.println(); }
Добавлено через 1 минуту
Сообщение от Aviz__ 
эх ты, украл у человека чувство, что он сам может разобраться((
Да эт совсем пустяковое дело, он вряд ли что-то потеряет из-за того, что я это написал. Ты ж его уже отослал читать про printf, поэтому если он захочет, то разберётся
Сообщение от Gungala 
если он захочет
в том то и дело, Бро, что мозг 99% людей устроен, так, что если есть более простой путь, но с потерями в стратегии, и сложнее, без потерь, то будет выбран первый((
| Меню пользователя @ Aviz__ |
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
Чувак, прости меня, я лишил тебя возможности стать чуть более образованным
2495 / 1944 / 486
Регистрация: 17.02.2014
Сообщений: 9,238
Сообщение от Gungala 
я лишил тебя возможности стать чуть более образованным
alicesmagic
Сообщение от Aviz__ 
чувство, что он сам может разобраться
Когда у человека есть такое чувство и желание разобраться, он может сформулировать свой вопрос с применением «дайте направление», или «подскажите» и т.п.
Когда человек спрашивает «Что можно сделать?», ему нужно решение. И, кто знает, может быть решение нужно очень срочно. Почему бы и не дать готовое решение? Зачем решать за него, что ему нужно? Он сам разберется с этим потом.
Это моя позиция в подобных ситуациях. Поэтому, не ругайте меня, если я буду давать прямые ответы)))
Вот в данном случае, я повелась на твою, Aviz__, методику воспитания и вместо System.out.print(mass[i][j] + «\t») , начала давать намеки. В итоге в душе осадочек))) Больше так делать не буду.
| Меню пользователя alicesmagic |
Вывод двумерного массива. Java
На данный момент в консоль выходит массив, но каждый его элемент не начинается с новой строки, а хотелось бы. Подскажите, пожалуйста, какой-то может есть способ другой для вывода в 10 строк?
Отслеживать
user236980
задан 4 ноя 2020 в 21:47
Lyuis Melton Lyuis Melton
17 1 1 серебряный знак 4 4 бронзовых знака
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Элемент двумерного массива — это одномерный массив. Обходим двумерный массив и выводим его элементы. Это можно сделать в цикле:
for (int i = 0; i
Можно на стримах:
Arrays.stream(listDoubleDiagonal) .forEach(arr -> System.out.println(Arrays.toString(arr)));
Отслеживать
ответ дан 4 ноя 2020 в 22:06
user236980 user236980
Вывод двумерного массива построчно:
int[][] arr = new int[10][10]; // заполнение массива IntStream.range(0, 10).forEach(i -> < arr[i][i] = 1; arr[i][9 - i] = 1; >); // вывод построчно Arrays.stream(arr).map(Arrays::toString).forEach(System.out::println);
[1, 0, 0, 0, 0, 0, 0, 0, 0, 1] [0, 1, 0, 0, 0, 0, 0, 0, 1, 0] [0, 0, 1, 0, 0, 0, 0, 1, 0, 0] [0, 0, 0, 1, 0, 0, 1, 0, 0, 0] [0, 0, 0, 0, 1, 1, 0, 0, 0, 0] [0, 0, 0, 0, 1, 1, 0, 0, 0, 0] [0, 0, 0, 1, 0, 0, 1, 0, 0, 0] [0, 0, 1, 0, 0, 0, 0, 1, 0, 0] [0, 1, 0, 0, 0, 0, 0, 0, 1, 0] [1, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Как вывести матрицу в окно??
Использую java. Есть окно, нужно вывести матрицу чисел в окно, также необходимо, чтобы была возможность записи чисел через окно в матрицу. Перерыл много сайтов, но не понимаю, как сделать.
Что нужно для этого использовать?
- Вопрос задан более трёх лет назад
- 402 просмотра
Комментировать
Решения вопроса 1
Что за окно? Окно веб браузера, или окно swing? Или консоль?
Если swing, можно использовать JTable: How to Use Tables
Ответ написан более трёх лет назад

Антон @ Лялин @toxa_1995 Автор вопроса
Упс. забыл про это написать, backend приложение

Антон @ Лялин @toxa_1995 Автор вопроса
Ввод также через JTable можно??
Антон @ Лялин: да. Но так как у вас backend, т.е. web-сервер, чтоб использовать JTable, вам придется написать «толстый» клиент к вашему серверу
Антон @ Лялин: т.е. у вас сервер, и нужно отобразить матрицу в браузере? Тогда вам в помощь HTML и ajax

Антон @ Лялин @toxa_1995 Автор вопроса
Eugene: Для swing как??
Антон @ Лялин: конкретней вопрос

Антон @ Лялин @toxa_1995 Автор вопроса
Eugene: Если обычное окно, JFrame, в этом случае. Вообщем понял, JTable, есть другие способы вывода? (оконное приложение)
Антон @ Лялин: У вас backend? Вы понимаете что такое backend? Чем десктоп приложение отличается от серверного?

Антон @ Лялин @toxa_1995 Автор вопроса
Eugene: У меня несколько вопросов, знаю что такое backend и что такое десктоп.
Антон @ Лялин:
1. Тогда читаем книгу «Swing. Руководство для начинающих»;
2. разбираемся как делать http запросы к вашему бэкэнду. Или как устанавливать сокет соединение, если у вам не http сервер.
3. Пишем клиент, который будет получать вашу матрицу от бэкэнда и отображать её в JTable