JAVA. Вывести массив

Рейтинг: 0Ответов: 1Опубликовано: 03.03.2023

Сразу вставлю код, так как проще будет объяснить что к чему:

class Leetcode {
    public static void main(String [] args) {
        System.out.print(plusOne(new int [] {3, 4, 2, 6, 4}));
    }
    public static int[] plusOne(int[] digits) {
        for (int i = digits.length - 1; i >= 0; i--) {
            if (digits[i] < 9) {
                digits[i]++;
                return digits;
            }
            digits[i] = 0;
        }

        digits = new int[digits.length + 1];
        digits[0] = 1;
        return digits;
    }
}

В общем, мне нужно вывести готовый массив 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. код разобрал, понял как работает) Что делать?

Ответы

▲ 4Принят

Просто так массив вывести нельзя - выведется его хэшькод в 16ричной системе.

Первый способ - написать руками

public static void printArr(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
       System.out.print(arr[i] + " ");
    }
}

//вызов
printArr(new int[]{1,2,3,4,5});

Второй способ - воспользоваться готовой функцией из стандартной библиотеке

import java.util.Arrays;
//...
System.out.println(Arrays.toString(new int[]{1,2,3,4,5}));