Pascal4eg / Java

 Java | Фишки и трюки

Arrays.toString() и Arrays.deepToString()

Double[] doubleArray = new Double[] {11.0, 45.55, 83.4};
System.out.println(Arrays.toString(doubleArray));
// [11.0, 45.55, 83.4]

String[] stringArray = new String[] {"John", "Mary", "Bob"};
System.out.println(Arrays.toString(stringArray));
// [John, Mary, Bob]

String[][] deepArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};
System.out.println(Arrays.deepToString(deepArray) );
// [[John, Mary], [Alice, Bob]]

В Java массивы не переопределяют toString(), поэтому, если вы попытаетесь напечатать его напрямую, вы получите имя класса + '@' + шестнадцатеричный хеш-код массива, как определено в Object.toString().

Но обычно нам на самом деле нужно что бы напечаталось содержимое массива. Самый простой способ это сделать, это воспользоваться методом Arrays.toString(). А если массив содержит другие массивы, то Arrays.deepToString().

Внутри этих методов на каждом элементе массива вызывается метод toString() для получения строкового представления.