Java array system out println java

Содержание
  1. Распечатать массив в Java
  2. Как печатать одномерные массивы?
  3. 1. Цикл for или расширенный цикл for
  4. 2. Arrays учебный класс — toString() или же deepToString() метод
  5. 3. Apache Commons Lang – ArrayUtils.toString() метод
  6. 4. Поток Java 8
  7. 5. Arrays.asList() или Guava Ints.asList()
  8. Rukovodstvo
  9. статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
  10. Как напечатать массив на Java
  11. Введение Печать массива — это быстрый способ дать нам представление о значениях содержимого внутри. Иногда значения массива являются желаемым результатом работы программы. В этой статье мы рассмотрим, как распечатать массив в Java четырьмя различными способами. Хотя «лучший способ» зависит от того, что нужно делать вашей программе, мы начнем с простейшего метода печати, а затем покажем более подробные способы сделать это. * Распечатать массив с помощью Arrays.toString () и Arrays.deepToString () * Печать
  12. Вступление
  13. Распечатайте массив с помощью Arrays.toString () и Arrays.deepToString ()
  14. Печать массива с использованием потоков Java 8
  15. Распечатать массив путем преобразования в список
  16. Распечатать массив с помощью циклов For
  17. Преобразование в список и использование итератора
  18. Заключение

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

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

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

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

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

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

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

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

Читайте также:  Какая мне нужна java

результат:

[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. Предусмотрена поддержка печати многомерных массивов.

4. Поток Java 8

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

  1. Получить итератор в поток Iterator itr = Arrays.stream(arr).iterator(); .
  2. С использованием Stream.forEach
    Arrays.stream(arr).forEach(System.out::println); .

Следующая программа демонстрирует это:

5. Arrays.asList() или Guava Ints.asList()

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

Похожий на Arrays.asList() метод в JDK, библиотека Google Guava имеет Ints.asList() который также возвращает список фиксированного размера.

Источник

Rukovodstvo

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

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

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

Вступление

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

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

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

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

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

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

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

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

 int[] intSequence = ; System.out.println(Arrays.toString(intSequence)); 

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

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

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

 double[] doubleValues = ; System.out.println(Arrays.toString(doubleValues)); String[] stringValues = ; System.out.println(Arrays.toString(stringValues)); 

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

 [5.5, 2.37, 9.9, 1.02] [alabama, arkansas, kentucky] 

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

 double[][] coordinates = , >; System.out.println(Arrays.deepToString(coordinates)); String[][] songLines = , >; System.out.println(Arrays.deepToString(songLines)); 
 [[40.5, 50.75], [22.25, 32.75]] [[Take your nose off my keyboard], [What you bothering me for?]] 

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

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

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

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

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

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

 String[] languages = ; Arrays.stream(languages).forEach(System.out::println); 

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

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

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

 String[] languages = ; Stream.of(languages).forEach(System.out::println); 

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

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

 String[][] languages = , , >; Arrays.stream(languages).forEach(System.out::println); // OR Stream.of(languages).forEach(System.out::println); 

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

 [Ljava.lang.String;@e9e54c2 [Ljava.lang.String;@65ab7765 [Ljava.lang.String;@1b28cdfa 

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

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

 String[][] languages = , , >; Arrays.stream(languages).forEach(s -> Arrays.stream(s).forEach(System.out::println)); // OR Stream.of(languages).forEach(s -> Arrays.stream(s).forEach(System.out::println)); 

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

 Java 1996 Python 1994 JavaScript 1995 

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

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

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

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

 Integer[] numbers = ; List numberList = Arrays.asList(numbers); System.out.println(numberList); 

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

 Integer[] numbers = ; Arrays.asList(numbers).forEach(System.out::println); 

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

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

 Integer[] numbers = ; Arrays.asList(numbers) .forEach(number -> System.out.print(String.format("%d, ", number))); 

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

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

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

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

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

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

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

 int[] numbers = ; for (int i = 0; i

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

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

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

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

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

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

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

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

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

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

 Integer[] numbers = ; List numberList = Arrays.asList(numbers); Iterator numberIterator = numberList.iterator(); while(numberIterator.hasNext())

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

Заключение

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

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

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

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

Licensed under CC BY-NC-SA 4.0

Источник

Оцените статью