Как вывести массив в консоль в Java

🔥 🚀 Важно для всех, кто работает с Java! 🔥
На JavaRocks ты найдешь уникальные туториалы, практические задачи и редкие книги, которых не найти в свободном доступе. Присоединяйся к нашему Telegram-каналу JavaRocks — стань частью профессионального сообщества!

Зачем нужно выводить массивы на экран в Java?

Java предоставляет структуру данных Array для хранения различных элементов одного типа данных. Элементы хранятся в буфере памяти (contiguous memory). Чтобы отобразить содержимое массива, необходимо вывести элементы через println

Методы печати массива в Java

В Java существует множество различных способов вывести массив. Вы можете использовать обход с помощью циклов for или использовать методы стандартной библиотеки. Вот способы печати массивов в Java, которые мы рассмотрим в этой статье.

  1. цикл for
  2. цикл for each
  3. Метод Arrays.toString()
  4. Метод Arrays.toList()
  5. Java Iterators

Метод I – Печать массива с помощью цикла for

Для начала это самый простой способ. Вот как вы можете это сделать.

public class printArrayMethod1 {

	public static void main(String[] args) {

		String[] monthsOfTheYear = {"January", "February", "March",
						    "April", "May", "June",
						    "July", "August", "September",
						    "October", "November", "December" };

		System.out.println("Months of the year are as follows:");

		
		for (int i = 0; i < monthsOfTheYear.length; i++) {
			System.out.println(monthsOfTheYear[i]);
		}
	}
}
Run Code

Вывод

Months of the year are as follows:
January
February
March
April
May
June
July
August
September
October
November
December

Метод II – Печать массива с помощью цикла for each

Цикл For each – это другая форма базового цикла for. Здесь вам не нужно инициализировать и увеличивать итератор цикла. Цикл напрямую обходит элементы массива. Более простой способ.

public class printArrayMethod2 {

	public static void main(String[] args) {

		String[] monthsOfTheYear = {"January", "February", "March",
				"April", "May", "June",
				"July", "August", "September",
				"October", "November", "December" };

		System.out.println("Months of the year are as follows:");

		
		for (String month : monthsOfTheYear) {
			System.out.println(month);
		}
	}
}
Run Code

Вывод

Months of the year are as follows:
January
February
March
April
May
June
July
August
September
October
November
December

Метод III – Использование массивов стандартной библиотеки

Метод Java Arrays.toString() предоставляется классом java.util.Arrays. В качестве входного параметра он принимает массив. Массив может быть любого примитивного типа. Позже массив преобразуется в строку перед выводом в консоль.

import java.util.Arrays;

public class printArrayMethod3 {

	public static void main(String[] args) {

		String[] monthsOfTheYear = {"January", "February", "March",
				"April", "May", "June",
				"July", "August", "September",
				"October", "November", "December" };

		System.out.println("Months of the year are as follows:");

		
		System.out.println(Arrays.toString(monthsOfTheYear));
	}

}
Run Code

Вывод

Как видно из вывода, на консоль выводятся все элементы массива, разделенные запятыми.

Months of the year are as follows:
[January, February, March, April, May, June, July, August, September, October, November, December]

Метод IV – Использование стандартных библиотечных массивов методом asList

Метод Java Arrays.asList() также предоставляется классом java.util.Arrays. В качестве параметра ему может быть передан массив данных примитивных типов. Впоследствии на консоль выводится представление входного массива в виде списка.

import java.util.Arrays;

public class printArrayMethod4 {

	public static void main(String[] args) {

		String[] monthsOfTheYear = {"January", "February", "March",
				"April", "May", "June",
				"July", "August", "September",
				"October", "November", "December" };

		System.out.println("Months of the year are as follows:");

		
		System.out.println(Arrays.asList(monthsOfTheYear));
	}
}

Вывод

Months of the year are as follows:
[January, February, March, April, May, June, July, August, September, October, November, December]

Метод V – Использование итераторов для обхода массива

Это немного продвинутый метод. Прежде чем приступить к нему, вы можете ознакомиться с фреймворком коллекций в Java. Java предоставляет интерфейс под названием “iterator”, присутствующий в пакете java.util. Объект итератора используется для обхода объектов класса Collection. Поэтому в следующем примере перед использованием итератора массив необходимо преобразовать в “List”.

import java.util.Arrays;
import java.util.Iterator;

public class printArrayMethod5 {

	public static void main(String[] args) {

		String[] monthsOfTheYear = {"January", "February", "March",
				"April", "May", "June",
				"July", "August", "September",
				"October", "November", "December" };

		System.out.println("Months of the year are as follows:");

		
		Iterator<String> itr = Arrays.asList(monthsOfTheYear).iterator();

		while (itr.hasNext()) {
			System.out.println(itr.next());
		}
	}
}
Run Code

Вывод

Months of the year are as follows:
January
February
March
April
May
June
July
August
September
October
November
December

Чтобы закрепить полученные знания, мы предлагаем вам посмотреть видеоурок из нашего курса по Java. Язык – English

Вы уже научились печатать простые массивы с помощью таких методов, как Arrays.toString(), но с многомерными массивами все сложнее. К счастью, в Java есть метод Arrays.deepToString(). Этот метод идеально подходит для тех случаев, когда вы хотите увидеть содержимое вложенных массивов

Почему Arrays.deepToString() это геймченджер?

Метод Arrays.toString() обрабатывает только одномерные массивы. Если вы попытаетесь вывести двумерный массив с помощью Arrays.toString(), вы получите что-то белеберду вроде [[I@6d06d69c, . Именно здесь на помощь приходит Arrays.deepToString(), позволяющая получить человекочитаемое представление многомерных массивов.

Вот пример:

import java.util.Arrays;

public class DeepToStringExample {
    public static void main(String[] args) {
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        System.out.println(\"Using Arrays.toString():\");
        System.out.println(Arrays.toString(matrix));

        System.out.println(\"\\nUsing Arrays.deepToString():\");
        System.out.println(Arrays.deepToString(matrix));
    }
}
Run Code

При выполнении этого кода Arrays.toString() выводит кучу адресов памяти, а Arrays.deepToString() – что-то вроде [[1, 2, 3], [4, 5, 6], [7, 8, 9]], что гораздо проще для чтения и понимания.

Разница между Arrays.toString() и Arrays.deepToString()

Так в чем же реальная разница? Arrays.toString() отлично подходит для одномерных массивов, но не может отобразить многомерные массивы в удобочитаемом виде. С другой стороны, Arrays.deepToString() выполняет итерации по вложенным массивам и выводит их в более структурированном формате.

Короче говоря, Arrays.toString() – это ваша палочка-выручалочка для одномерных массивов. Как только вы начнете работать с вложенными массивами используйте Arrays.deepToString()

Форматирование многомерных массивов с помощью Arrays.deepToString()

По умолчанию Arrays.deepToString() выводит все в одну строку. В большинстве случаев этого вполне достаточно, но не всегда. Давайте посмотрим, как разбить вывод на несколько строк с помощью небольшого трюка с манипуляцией строками. Это всего лишь один из подходов, поэтому не стесняйтесь адаптировать его под себя.

import java.util.Arrays;

public class CustomFormatExample {
    public static void main(String[] args) {
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        String rawOutput = Arrays.deepToString(matrix);
        

        
        String formatted = rawOutput
                .replace(\"],\", \"],\\n\")
                .replace(\"[[\", \"[\\n[\")
                .replace(\"]]\", \"]\\n]\");

        System.out.println(\"Formatted 2D Array:\\n\" + formatted);
    }
}
Run Code

В этом примере мы берем вывод из Arrays.deepToString() и добавляем новые пустые строки. В результате мы получаем более чистый многострочный вывод.

Заключение

Мы представили краткий обзор различных методов вывода элементов массива. Эти примеры были основаны на типе данных String. Однако мы рекомендуем вам экспериментировать с различными примитивными и непримитивными типами данных.

Перевод статьи «How to Print an Array in Java».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх