Как напечатать массив java

от admin

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Как напечатать массив на Java

Введение Печать массива — это быстрый способ дать нам представление о значениях содержимого внутри. Иногда значения массива являются желаемым результатом работы программы. В этой статье мы рассмотрим, как распечатать массив в Java четырьмя различными способами. Хотя «лучший способ» зависит от того, что нужно делать вашей программе, мы начнем с простейшего метода печати, а затем покажем более подробные способы сделать это. * Распечатать массив с помощью Arrays.toString () и Arrays.deepToString () * Печать

Время чтения: 8 мин.

Вступление

Печать массива — это быстрый способ дать нам представление о значениях содержимого внутри. Иногда значения массива являются желаемым результатом работы программы.

В этой статье мы рассмотрим, как распечатать массив в Java четырьмя различными способами.

Хотя «лучший способ» зависит от того, что нужно делать вашей программе, мы начнем с простейшего метода печати, а затем покажем более подробные способы сделать это.

  • Распечатайте массив с помощью Arrays.toString () и Arrays.deepToString ()
  • Печать массива с использованием потоков Java 8
  • Распечатать массив путем преобразования в список
  • Распечатать массив с помощью циклов For
  • Преобразование в список и использование итератора

Распечатайте массив с помощью Arrays.toString () и Arrays.deepToString ()

Встроенный toString() — чрезвычайно простой способ распечатать отформатированные версии объектов в Java.

Каждый тип данных в Java считается классом, и по умолчанию каждый класс наследуется от java.lang.Object , корня иерархии классов Java. Вот почему в каждом классе есть метод toString() Однако массивы не переопределяют метод toString() для правильного форматирования вывода, а просто возвращает унаследованное значение, которое является хешем объекта.

Мы печатаем массивы с помощью toString() из класса в java.util.Arrays .

Возьмем этот пример, в котором мы печатаем значения массива целых чисел:

Приведенный выше код выведет следующее:

Обратите внимание, как все элементы разделены запятыми и заключены в квадратные скобки. Этот метод похож на визуальное представление массива.

Мы также можем использовать этот метод для печати массивов разных типов:

Это соответственно приводит к:

Метод toString() эффективен только для одномерных массивов. Когда у нас есть вложенные массивы, нам нужно использовать метод deepToString() :

Если вам нужно с первого взгляда deepToString() что находится в вашем массиве, лучше всего подойдут методы toString() и deepToString ().

Однако эти методы не позволяют форматировать вывод. Этот подход в основном является обходным решением того факта, что массивы по умолчанию toString()

Если вы предпочитаете некоторую гибкость форматирования, вы можете рассмотреть возможность использования Java 8 Streams .

Печать массива с использованием потоков Java 8

Один из вариантов печати массива — преобразовать его в поток объектов, а затем распечатать каждый элемент в потоке. У нас есть несколько вариантов использования потоков для печати нашего массива.

Например, мы можем напечатать наш массив построчно, вот так:

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

Примечание. Мы println() следующим образом: System.out::println . :: в Java — это оператор ссылки на метод. Функция forEach() может использовать лямбда-функцию или ссылку на метод.

В качестве альтернативы мы можем использовать класс Stream java.util.stream.Stream для аналогичного вызова функции println() в потоке данных нашего массива. Мы можем создать Stream из этих данных с помощью Stream.of() :

С помощью этого кода мы получим тот же результат:

Давайте попробуем это и с вложенными массивами, добавив даты выпуска начальных версий этих языков:

Вывод для каждой печати через потоки будет выглядеть примерно так:

Это не очень хорошо работает . Мы снова вызываем println() для объектов массива. Нам придется снова передать эти объекты в поток и распечатать их элементы.

Чтобы распечатать вложенные массивы, мы можем использовать лямбда-выражение в функции forEach() которое может перейти на второй уровень, создав другой поток каждого уровня и распечатав записи таким образом:

Эта лямбда-функция печатает элементы в каждом вложенном массиве. При компиляции и выполнении мы получим такой вывод:

Потоки упрощают работу с коллекциями. Но Java гибка и предоставляет еще больше возможностей. Традиционный цикл for по-прежнему многое делает для нас. Давайте посмотрим на печать массива с циклами.

Распечатать массив путем преобразования в список

Вы можете легко преобразовать массив Java в реализацию List Есть разные способы сделать это, и мы подробно рассмотрели каждый в нашей статье « Как преобразовать массив Java в ArrayList».

Короче говоря, вызов toString() или просто распечатка (которая неявно вызывает toString() ) в List распечатает содержимое:

Кроме того, вы можете использовать .forEach() изначально для любой Collection , которой является List . Итак, вы можете просто пойти дальше и сделать это:

Хотя это не очень хорошо отформатированный вариант:

Вы можете отказаться от ссылки на метод и просто использовать лямбда для большего контроля:

Распечатать массив с помощью циклов For

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

Мы настраиваем for с переменной, обычно называемой i , в качестве счетчика, начиная с элемента 0 . Затем следует условие, которое сравнивает i с количеством элементов в массиве.

Примечание . Число элементов в массиве, которые будут использоваться в условии цикла, никогда не следует жестко задавать. Java предоставляет атрибут с именем length который позволяет программисту динамически вычислять количество элементов в массиве.

И последнее, но не менее важное: for принимает инкрементное значение, в нашем случае мы будем использовать i++ чтобы увеличивать счетчик на один элемент в каждой итерации.

Как только наш цикл настроен и готов, мы просто воспользуемся System.out.println() для отображения каждого элемента в массиве, используя обозначение прямоугольных скобок [i] принимая в качестве входных данных наш счетчик i .

Вот пример, в котором мы печатаем все элементы целочисленного массива построчно:

Выполнение этого кода выведет на консоль следующее:

Больше не нужно использовать циклы for Они довольно гибкие и концептуально простые. Например, если у вас были вложенные массивы, вы будете использовать вложенные циклы for

Наконец, давайте взглянем на итераторы и списки.

Преобразование в список и использование итератора

Объект итератора Java позволяет нам отображать каждый элемент нашего массива без необходимости использовать индексный подход, который мы рассмотрели в разделе цикла for

Чтобы использовать итераторы, мы должны изменить тип данных массива на List . Мы можем сделать это с помощью Array.asList() и сохранить возвращаемые значения списка в новой переменной. Метод asList() принимает массив и превращает его в реализацию List

Затем вам понадобится объект-итератор для настройки итератора массива. Итератор похож на указатель, указывающий на каждый элемент массива. Итератор помогает вам исследовать каждый элемент в индивидуальном порядке.

Чтобы создать объект-итератор, мы будем использовать метод iterator() нашего List . После того, как наш объект итератора был создан мы используем while цикл , как это предлагает более компактный способ печати каждого элемент возвращения итератора.

В while условие цикла будет содержать призыв к hasNext() метод нашего итератора. Внутри в while цикла, мы выводим каждый элемент с помощью вызова System.out.println() . Мы получаем элементы из итератора, вызывая метод next() . В while цикл будет держать итерации над каждым элементом , пока мы не проходится наш массив (по List ).

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

По сравнению с циклами for этот метод предпочитают разработчики, которые предпочитают не иметь дело с индексами массивов. Вам гарантирован следующий элемент с помощью next() . Итераторы мощны, потому что мы используем этот же поток для любого типа List такого как ArrayList или LinkedList , а также для других коллекций, таких как Map или Set !

Заключение

В этой статье мы рассмотрели основные методы, используемые для печати массива в Java. Мы начали с использования встроенных методов Java toString() и deepToString() .

Оттуда мы использовали потоки, чтобы мы могли быстро печатать элементы массива построчно. Мы также рассмотрели, как преобразовать массив в список, который вы можете либо просто вызвать, либо использовать Java 8 Stream API для более детального контроля.

Затем мы использовали традиционную for для печати каждого элемента по отдельности.

И последнее , но не в последнюю очередь, мы использовали объект итератора для печати каждый элемент по отдельности с помощью next() метод внутри в while цикла. Подходы, описанные в этой главе, могут использоваться в зависимости от варианта использования и проблемы, которую вы пытаетесь решить.

Распечатать массив в Java

Напишите программу для печати одномерных и многомерных массивов на Java.

Как печатать одномерные массивы?

1. Цикл for или расширенный цикл for

Наивным подходом будет использование цикла for, как показано ниже:

Мы можем заменить приведенный выше цикл for улучшенным циклом for, как показано ниже:

2. Arrays учебный класс — toString() или же deepToString() метод

Другим простым решением было бы просто использовать Arrays.toString(Object[] a) метод, который вернет строковое представление содержимого указанного массива. Мы также можем использовать Arrays.deepToString(Object[] a) который возвращает строковое представление “глубокого содержимого” указанного массива, т. е. если массив содержит в качестве элементов другие массивы, строковое представление включает их содержимое и т.д.

результат:

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

3. Apache Commons Lang – ArrayUtils.toString() метод

Arrays.toString() а также Arrays.deepToString() будет работать только на Java SE 5 и выше. Apache Commons предоставляет ArrayUtils.toString() метод, аналогичный Arrays.deepToString() и выводит массив в виде строки. Ниже приведены его отличия от Arrays.deepToString() :

  1. Строковое представление элементов массива заключено в фигурные скобки. <> в отличие от квадратных скобок [] .
  2. Соседние элементы разделяются только запятой (а не пробелом).
  3. Предусмотрена поддержка печати многомерных массивов.
Читать:
Pdf architect что это

4. Поток Java 8

В Java SE 8 и выше мы можем использовать потоки для печати массива. Ниже приведены две терминальные операции, которые мы можем применить к потоку для печати массива.

Как напечатать массив в Java

В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.

Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.

Количество просмотров этой статьи: 21 312.

Если вы работаете в Java и у вас массив с большим объемом данных, возможно, удобства ради, вам стоит напечатать определенные элементы. Существует несколько способов напечатать массивы в Java, и примеры, приведенные дальше, покажут, как это сделать. Для этого предположим, что название массива будет напечатано как «array», а искомые элементы – «Elem».

Как распечатать массив на Java

В этом уроке мы напечатаем массивы на Java, используя методы toString() и Deept-string (), потоки для циклов и итераторов, с примерами и объяснениями!

  • Автор записи

Вступление

Печать массива – это быстрый способ дать нам представление о значениях содержимого внутри. Иногда значения массива являются желаемым результатом работы программы.

В этой статье мы рассмотрим как печатать массив на Java четырьмя различными способами.

Хотя “лучший способ” зависит от того, что должна делать ваша программа, мы начнем с самого простого метода печати, а затем покажем более подробные способы его выполнения.

  • Распечатайте массив с помощью Arrays.toString() и Arrays.deepToString()
  • Печать массива с использованием потоков Java 8
  • Печать массива путем преобразования в список
  • Выведите массив с помощью циклов For
  • Преобразование в список и Использование Итератора

Распечатайте массив с помощью Arrays.toString() и Arrays.deepToString()

Встроенный метод toString () -это чрезвычайно простой способ печати отформатированных версий объектов на Java.

Каждый тип данных в Java считается классом, и по умолчанию каждый класс наследуется от java.lang.Объект , корень иерархии классов Java. Вот почему у каждого класса есть метод toString () . Однако массивы не переопределяют метод toString() для удобного форматирования выходных данных, и он просто возвращает унаследованное значение, которое является хэшем объекта.

Мы печатаем массивы с помощью метода toString() из класса в java.util.Массивы .

Возьмем этот пример, где мы выводим значения массива целых чисел:

Приведенный выше код выведет следующее:

Обратите внимание, что все элементы разделены запятыми и заключены в квадратные скобки. Этот метод похож на визуальное представление массива.

Мы также можем использовать этот метод для печати массивов различных типов:

Это соответственно приводит к:

Метод toString() эффективен только для одномерных массивов. Когда у нас есть вложенные массивы, нам нужно использовать метод deepToString() :

Если вам нужно наглядное представление о том, что находится в вашем массиве с первого взгляда, методы toString() и deepToString () – ваш лучший вариант.

Однако эти методы не позволяют отформатировать вывод. Этот подход в основном является обходным путем для того факта, что массивы по умолчанию не переопределяют метод toString () .

Если вы предпочитаете некоторую гибкость в форматировании, вы можете рассмотреть возможность использования Java 8 потоков .

Печать массива с использованием потоков Java 8

Один из вариантов печати массива-преобразовать его в поток объектов, а затем распечатать каждый элемент в потоке. У нас есть несколько вариантов использования потоков для печати нашего массива.

Например, мы можем распечатать наш массив построчно следующим образом:

В этом случае мы используем метод static stream() класса Массивы для создания последовательного потока наших данных. Для каждого элемента в нашем потоке мы вызываем функцию println () , чтобы он отображался строка за строкой следующим образом:

Примечание: Мы ссылаемся на функцию println() следующим образом: System.out::println . :: в Java является оператором ссылки на метод. Функция forEach() может использовать либо лямбда – функцию , либо ссылку на метод .

В качестве альтернативы мы можем использовать класс Stream из java.util.stream.Stream для аналогичного вызова функции println() в потоке данных нашего массива. Мы можем построить поток этих данных, используя Stream.of() :

С помощью этого кода мы получим тот же результат:

Давайте попробуем это также с вложенными массивами, добавив даты выпуска начальных версий этих языков:

Вывод для каждой печати через потоки будет выглядеть примерно так:

Git Essentials

Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!

Это не очень хорошо работает… Мы снова вызываем println() для объектов массива. Нам придется снова транслировать эти объекты и печатать их элементы.

Для печати вложенных массивов мы можем использовать лямбда-выражение в функции forEach () , которое может перейти на второй уровень, создав еще один поток каждого уровня и распечатав записи таким образом:

Эта лямбда-функция выводит элементы в каждом вложенном массиве. При компиляции и выполнении мы получим этот результат:

Потоки облегчают работу с коллекциями. Но Java является гибкой, чтобы предоставить еще больше возможностей. Традиционный цикл for по-прежнему многое делает для нас. Давайте взглянем на печать массива с циклами.

Печать массива путем преобразования в список

Вы можете легко преобразовать массив Java в реализацию List . Существуют различные способы сделать это, и мы подробно рассмотрели каждый из них в нашем Как преобразовать массив Java в ArrayList статья.

Короче говоря, вызов toString () или просто распечатка (которая неявно вызывает toString() ) в Списке реализации, распечатает содержимое:

Кроме того, вы можете использовать .forEach() изначально в любой Коллекции , которой является Список . Так что вы можете просто пойти дальше и сделать то же самое:

Хотя это не очень хорошо отформатированный вариант:

Вы можете отказаться от ссылки на метод и просто использовать лямбду для большего контроля:

Выведите массив с помощью циклов For

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

Мы настраиваем цикл для с переменной, обычно называемой i , в качестве счетчика, начинающегося с элемента 0 . Затем следует условие, которое сравнивает i с количеством элементов в массиве.

Примечание : Количество элементов в массиве, которые будут использоваться в состоянии цикла, никогда не должно быть жестко закодировано. Java предоставляет атрибут length , который позволяет программисту динамически вычислять количество элементов в массиве.

И последнее, но не менее важное: наш цикл для принимает инкрементное значение, в нашем случае мы будем использовать обозначение i++ , чтобы продолжать увеличивать наш счетчик на один элемент в каждой итерации.

Как только наш цикл будет полностью настроен и готов, мы просто используем оператор System.out.println() для отображения каждого элемента в массиве, используя обозначение в прямоугольных скобках [i] , используя в качестве входных данных наш счетчик i .

Вот пример, в котором мы выводим все элементы целочисленного массива строка за строкой:

При выполнении этого кода в вашей консоли будет выведено следующее:

Использовать для циклов не так уж много. Они довольно гибкие и концептуально просты. Например, если у вас были вложенные массивы, то вы будете использовать вложенные для циклов.

Наконец, давайте взглянем на итераторы и списки.

Преобразование в список и Использование Итератора

Объект итератора Java позволяет нам отображать каждый элемент вашего массива без использования индексного подхода, который мы рассмотрели в разделе для цикла.

Чтобы использовать итераторы, мы должны изменить тип данных массива на Список . Мы можем сделать это с помощью метода Array.asList() и сохранить значения списка, возвращенные в новой переменной. Метод asList() принимает массив и превращает его в реализацию List .

Затем вам понадобится объект итератора для настройки итератора массива. Итератор подобен указателю, указывающему на каждый элемент массива. Итератор помогает вам проверять каждый элемент особым образом.

Для создания объекта итератора мы будем использовать метод iterator() нашего Списка . Как только наш объект итератора был создан, мы используем цикл while , поскольку он предлагает более компактный способ печати каждого элемента, возвращаемого итератором.

Условие цикла while будет содержать вызов метода hasNext() нашего итератора. Внутри цикла while мы печатаем каждый элемент, вызывая System.out.println() . Мы получаем элементы из итератора, вызывая метод next () . Цикл while будет повторяться над каждым элементом до тех пор, пока мы не пройдем наш массив (через Список ).

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

По сравнению с циклами for, этот метод предпочитают разработчики, которые предпочитают не иметь дело с индексами массивов. Вам гарантирован предстоящий элемент с next() . Итераторы являются мощными , потому что мы используем один и тот же поток для любого типа Списка , такого как ArrayList или Связанный список , а также для других коллекций, таких как Карта или Набор !

Вывод

В этой статье мы рассмотрели основные методы, используемые для печати массива в Java. Мы начали с использования встроенных методов Java toString() и deepToString() .

Оттуда мы использовали потоки, чтобы мы могли быстро печатать элементы массива строка за строкой. Мы также рассмотрели, как преобразовать массив в список, который вы можете либо просто вызвать, либо использовать API Java 8 Stream для более детального управления.

Затем мы использовали традиционную структуру для цикла для печати каждого элемента по отдельности.

И последнее, но не менее важное: мы использовали объект итератора для печати каждого элемента отдельно, используя метод next() внутри цикла while . Подходы, описанные в этой главе, могут быть использованы в зависимости от варианта использования и проблемы, которую вы пытаетесь решить.

Похожие статьи