Как напечатать массив java
Перейти к содержимому

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

  • автор:

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

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

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

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

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

class Main
public static void main ( String [ ] args )
for ( int i = 0 ; i < arr . length ; i ++ ) < System . out . println ( arr [ i ] ) ;

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

class Main
public static void main ( String [ ] args )
for ( int value : arr ) < System . out . println ( value ) ;

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

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

import java . util . Arrays ;
class Main
public static void main ( String [ ] args )
Integer [ ] arr = < 1 , 2 , 3 , 4 , 5 >;
System . out . println ( Arrays . toString ( arr ) ) ;
System . out . println ( Arrays . deepToString ( arr ) ) ;

результат:

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

import org . apache . commons . lang3 . ArrayUtils ;
class Main
public static void main ( String [ ] args )
System . out . println ( ArrayUtils . toString ( arr ) ) ;

4. Поток Java 8

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

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

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

import java . util . Arrays ;
class Main
public static void main ( String [ ] args )
Arrays . stream ( arr ) . forEach ( System . out :: println ) ;

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

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

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

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. код разобрал, понял как работает) Что делать?

Отслеживать
671 4 4 серебряных знака 19 19 бронзовых знаков
задан 3 мар в 18:20
MiserySermon MiserySermon
3 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[])); 

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

Чтобы распечатать массив в Java, нужно использовать статический метод toString() из утилитного класса Arrays . Этот метод возвращает строковое представление массива, которое потом можно вывести на экран:

import java.util.Arrays; String[] fruits = "apple", "lemon", "banana">; // Так как метод статический, мы вызываем его из класса // а массив передаем в метод в качестве параметра System.out.println(Arrays.toString(fruits)); // => [apple, lemon, banana] 

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

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

1. Arrays.toString

Это самый простой способ напечатать массив — Arrays.toString (начиная с JDK 1.5)

 package com.csharpcoderr.utils.print; import java.util.Arrays; public class PrintArray < public static void main(String[] args) < // массив String[] arrayStr = new String[]; System.out.println(Arrays.toString(arrayStr)); // Вывод: [Java, Node, Python, Ruby] int[] arrayInt = ; System.out.println(Arrays.toString(arrayInt)); // Вывод: [1, 3, 5, 7, 9] // 2d массив, нужен Arrays.deepToString String[][] deepArrayStr = new String[][], >; System.out.println(Arrays.toString(deepArrayStr)); // Вывод: [[Ljava.lang.String; @ 23fc625e, [Ljava.lang.String; @ 3f99bd52] System.out.println(Arrays.deepToString(deepArrayStr)); // Вывод: [[mkyong1, mkyong2], [mkyong3, mkyong4] int[][] deepArrayInt = new int[][]<, >; System.out.println(Arrays.toString(deepArrayInt)); // Вывод: [[I @ 3a71f4dd, [I @ 7adf9f5f] System.out.println(Arrays.deepToString(deepArrayInt)); // Вывод: [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]] > > 
[Java, Node, Python, Ruby] [1, 3, 5, 7, 9] [[Ljava.lang.String; @ 23fc625e, [Ljava.lang.String; @ 3f99bd52] [[mkyong1, mkyong2], [mkyong3, mkyong4]] [[I @ 3a71f4dd, [I @ 7adf9f5f] [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

2. JDK 8 Stream

В JDK 8 мы можем преобразовать его в поток и распечатать.

 package com.csharpcoderr.utils.print; import java.util.Arrays; public class PrintArray < public static void main(String[] args) < // массив String[] arrayStr = new String[]; Arrays.stream(arrayStr).forEach(System.out::println); int[] arrayInt = ; Arrays.stream(arrayInt).forEach(System.out::println); // 2d массив String[][] deepArrayStr = new String[][], >; Arrays.stream(deepArrayStr).flatMap(x -> Arrays.stream(x)).forEach(System.out::println); int[][] deepArrayInt = new int[][]<, >; Arrays.stream(deepArrayInt).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println); > > 
Джава Узел питон Рубин 1 3 5 7 9 mkyong1 mkyong2 mkyong3 mkyong4 1 3 5 7 9 2 4 6 8 10

3. Джсон что-нибудь

Это мой метод поддержки, используйте библиотеку Jackson2 для печати чего-либо в формате JSON.

ЧИТАТЬ ТАКЖЕ: Как использовать учебник Mkyong

 package com.csharpcoderr.utils.print; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class PrintUtils < private static final ObjectMapper om = new ObjectMapper(); public static void print(Object object) < String result; try < result = om.writerWithDefaultPrettyPrinter().writeValueAsString(object); System.out.println(result); >catch (JsonProcessingException e) < e.printStackTrace(); >> > 
 package com.csharpcoderr.utils.print; public class PrintArray < public static void main(String[] args) < // массив String[] arrayStr = new String[]; PrintUtils.print(arrayStr); int[] arrayInt = ; PrintUtils.print(arrayInt); // 2d массив String[][] deepArrayStr = new String[][], >; PrintUtils.print(deepArrayStr); int[][] deepArrayInt = new int[][]<, >; PrintUtils.print(deepArrayInt); > > 
[Java, Node, Python, Ruby] [1, 3, 5, 7, 9] [[mkyong1, mkyong2], [mkyong3, mkyong4]] [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

Рекомендации

  1. Steam Javasoc
  2. Массивы JavaDoc
  3. Jackson 2 конвертирует Java-объект в JSON
  4. Джексон 2 официальный сайт

Добавить комментарий

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