Вопрос-ответ

Java arrays printing out weird numbers and text [duplicate]

Массивы Java, выводящие странные числа и текст

Я новичок в программировании. Я уверен, что ответ на этот вопрос где-то есть, но я понятия не имею, что искать.

Хорошо, я перейду сразу к этому.

Вот мой код:

int[] arr;
arr = new int[5];

arr[0] = 20;
arr[1] = 50;
arr[2] = 40;
arr[3] = 60;
arr[4] = 100;

System.out.println(arr);

Это компилируется и работает нормально. У меня кружится голова от вывода из CMD.

Вот результат: [I@3e25a5.

Я хочу, чтобы выходные данные представляли точно такие же числа из списка (arr). Как мне это сделать?

Переведено автоматически
Ответ 1

У каждого объекта есть toString() метод, и метод по умолчанию заключается в отображении представления имени класса объекта, затем @ за которым следует его хэш-код. Итак, вы видите toString() представление int массива по умолчанию. Чтобы распечатать данные в массиве, вы можете использовать:

System.out.println(java.util.Arrays.toString(arr));

Или вы можете перебирать массив с помощью for цикла, как другие писали в этой теме.

Ответ 2
System.out.println(Arrays.toString(arr));

Текущий результат - classtype@hashcode.

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

Arrays.deepToString(arr);

Также не забудьте переопределить toString() метод для пользовательских классов, чтобы вы получали представление объекта по своему выбору, а не представление по умолчанию, которое classtype@hashcode

Ответ 3

Это строковое представление массива по умолчанию (странный текст).

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

for(int i : arr){
System.out.println(i);
}
Ответ 4

Для печати значений используйте.

for(int i=0; i<arr.length; i++)
System.out.println(arr[i]);
java arrays