Как вывести массив в java
Массив представляет набор однотипных значений. Объявление массива похоже на объявление обычной переменной, которая хранит одиночное значение, причем есть два способа объявления массива:
тип_данных название_массива[]; // либо тип_данных[] название_массива;
Например, определим массив чисел:
int nums[]; int[] nums2;
После объявления массива мы можем инициализовать его:
int nums[]; nums = new int[4]; // массив из 4 чисел
Создание массива производится с помощью следующей конструкции: new тип_данных[количество_элементов] , где new — ключевое слово, выделяющее память для указанного в скобках количества элементов. Например, nums = new int[4]; — в этом выражении создается массив из четырех элементов int, и каждый элемент будет иметь значение по умолчанию — число 0.
Также можно сразу при объявлении массива инициализировать его:
int nums[] = new int[4]; // массив из 4 чисел int[] nums2 = new int[5]; // массив из 5 чисел
При подобной инициализации все элементы массива имеют значение по умолчанию. Для числовых типов (в том числе для типа char) это число 0, для типа boolean это значение false , а для остальных объектов это значение null . Например, для типа int значением по умолчанию является число 0, поэтому выше определенный массив nums будет состоять из четырех нулей.
Однако также можно задать конкретные значения для элементов массива при его создании:
// эти два способа равноценны int[] nums = new int[] < 1, 2, 3, 5 >; int[] nums2 = < 1, 2, 3, 5 >;
Стоит отметить, что в этом случае в квадратных скобках не указывается размер массива, так как он вычисляется по количеству элементов в фигурных скобках.
После создания массива мы можем обратиться к любому его элементу по индексу, который передается в квадратных скобках после названия переменной массива:
int[] nums = new int[4]; // устанавливаем значения элементов массива nums[0] = 1; nums[1] = 2; nums[2] = 4; nums[3] = 100; // получаем значение третьего элемента массива System.out.println(nums[2]); // 4
Индексация элементов массива начинается с 0, поэтому в данном случае, чтобы обратиться к четвертому элементу в массиве, нам надо использовать выражение nums[3] .
И так как у нас массив определен только для 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5; . Если мы так попытаемся сделать, то мы получим ошибку.
Длина массива
Важнейшее свойство, которым обладают массивы, является свойство length , возвращающее длину массива, то есть количество его элементов:
int[] nums = ; int length = nums.length; // 5
Нередко бывает неизвестным последний индекс, и чтобы получить последний элемент массива, мы можем использовать это свойство:
int last = nums[nums.length-1];
Многомерные массивы
Ранее мы рассматривали одномерные массивы, которые можно представить как цепочку или строку однотипных значений. Но кроме одномерных массивов также бывают и многомерными. Наиболее известный многомерный массив — таблица, представляющая двухмерный массив:
int[] nums1 = new int[] < 0, 1, 2, 3, 4, 5 >; int[][] nums2 = < < 0, 1, 2 >, < 3, 4, 5 >>;
Визуально оба массива можно представить следующим образом:
Как вывести массив в консоль Java? [дубликат]
Возможно, вам даже не нужен цикл для вывода массива на экран:
Arrays.deepToString(matrix1)
Отслеживать
ответ дан 15 июл 2019 в 3:21
Sergey Gornostaev Sergey Gornostaev
66.4k 6 6 золотых знаков 51 51 серебряный знак 112 112 бронзовых знаков
for(int[] a : matrix1) System.out.println(Arrays.toString(a));
Отслеживать
ответ дан 14 июл 2019 в 13:05
Имя Фамилия Имя Фамилия
2,728 2 2 золотых знака 10 10 серебряных знаков 35 35 бронзовых знаков
Отлично! toString выручает)
14 июл 2019 в 13:12
Вариант с использованием stream для двухмерного массива:
Arrays.stream(matrix).map(Arrays::toString).forEach(System.out::println);
Отслеживать
ответ дан 15 июл 2019 в 9:46
user236980 user236980
Он долгий. Намного дольше, чем циклом.
15 июл 2019 в 10:37
@ИмяФамилия почему вы так думаете?
15 июл 2019 в 10:39
@SergeyGornostaev я вчера проверял.
15 июл 2019 в 10:39
@ИмяФамилия как замеряли?
15 июл 2019 в 10:39
@ИмяФамилия посмотрите этот доклад — youtube.com/watch?v=8pMfUopQ9Es
15 июл 2019 в 10:58
- java
- массивы
-
Важное на Мете
Связанные
Похожие
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Вывод двумерного массива. 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. Вывести массив
В общем, мне нужно вывести готовый массив digits[] после проделанных операций. Пытался вывести с помощью System.out.print(plusOne(new int[] <3, 4, 2, 6, 4>)); , но выводится только hash code: [I@3fee733d . Пытался даже просто вызвать метод plusOne(new int[] <3, 4, 2, 6, 4>); , но затея плохая, так как метод сам по себе ничего не выводит, а лишь возвращает массив digits[] . (Код не мой, не догадался бы так решить, пока ничего не умею. P.S. код разобрал, понял как работает) Что делать?3,>
Отслеживать
671 4 4 серебряных знака 19 19 бронзовых знаков
задан 3 мар в 18:20
MiserySermon MiserySermon
13 4 4 бронзовых знака
Дубликат вопроса: Почему при выводе массива в консоли я вижу не то, что хочу?
3 мар в 18:39
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Просто так массив вывести нельзя — выведется его хэшькод в 16ричной системе.
Первый способ — написать руками
public static void printArr(int[] arr) < for (int i = 0; i < arr.length; i++) < System.out.print(arr[i] + " "); >> //вызов printArr(new int[]);
Второй способ — воспользоваться готовой функцией из стандартной библиотеке
import java.util.Arrays; //. System.out.println(Arrays.toString(new int[]));
