#массивы #java
Изучаю время от времени java и столкнулся с вот этим: public static void testArray(){ int myArray[] = {1, 2, 3, 4, 5}; System.out.println(myArray); } В консоли я вижу вместо ожидаемого 12345, вот это: [I@42e816 При указании типа String я вижу несколько модифицированную запись: [Ljava.lang.String;@42e816 (но это не то, мне надо, чтобы я мог найти сумму чисел в массиве, а со строками я наверное это не сделаю, или сделаю с большим количеством операций). В общем, как мне вывести значения массива, и что бы это было в нормальном виде?
Ответы
Ответ 1
Потому что Java не знает, чего вы хотите. Если хотите увидеть массив так, будто это список, то сделайте его списком: System.out.println(Arrays.asList(myArray)); Или просто руками: for (int v : myArray) System.out.println(v);Ответ 2
Метод toString() не переопределен в классе массива в Java - а потому он работает там так же, как и в классе Object, т.е. выводит простое имя класса объекта вместе с его хэшкодом. Для красивого вывода массива можно воспользоваться соответствующим методом класса Arrays.Ответ 3
Используйте метод Arrays.toString(), преобразующий массив в строку. Или напишите цикл, выводящий последовательно элементы массива.Ответ 4
Метод Array.toString() справляется чётко с этой задачей. В моем случае int[] arrNumbers = {99, 567, 22, 45, 1, 91}; System.out.println(Arrays.toString(arrNumbers));
Комментариев нет:
Отправить комментарий