Конечный результат моего метода не тот результат, который я хочу - PullRequest
0 голосов
/ 20 марта 2020

Я надеюсь, что у вас все хорошо и у вас все хорошо.

public class Main {

    public static void main(String[] args) {
        System.out.println(reverse3(new int[] {1,2,3}));


    }

    public static int[ ] reverse3(int [] nums) {
        int [] j = new int[3];
        j[0] = nums[2];
        j[1] = nums[1];
        j[2] = nums[0];
        return j;
    }

}

Как вы видите в коде, метод получает массив длиной 3 дюйма, возвращает новый массив с элементами в обратном порядке, поэтому {1, 2, 3} становится {3, 2, 1}.

Но когда я нажимаю для запуска, конечный результат равен [I@7b23ec81 Может кто-нибудь сказать мне решение и спасибо.

Ответы [ 3 ]

0 голосов
/ 20 марта 2020

У меня все хорошо, спасибо за вопрос, надеюсь, у вас тоже все хорошо

Вы помещаете массив в println(array) println не перегружен для печати элементов массива, он печатает hascode для это если вы передаете массив.

вам нужно сделать это

for(int i : reverse(new int[]{1,2,5})
{
  System.out.print(i);
}
0 голосов
/ 20 марта 2020

Получаемое вами значение является адресом j на уровне памяти. Это потому, что j является ссылочной переменной для вашего объекта int [], поэтому очевидно, что он будет возвращать ссылку на этот объект вместо значения в этом конкретном месте. Чтобы добиться того, что вы хотите, вам нужно напечатать значение i, используя

Code

Array arr[] = reverse3(new int[]{1,2,3}); 
for(int i=0;i<array.length;i++){
System.out.println("The value of arr[i] " +arr[i])
}
0 голосов
/ 20 марта 2020

Поскольку вы возвращаете j, который является объектом массива, вам необходимо l oop его вывести для вывода значений

В основной функции вы можете сделать следующее:

 Array arr[] = reverse3(new int[]{1,2,3}); 
    for(int i=0;i<arr.length;i++)
{ System.out.println(arr[i]); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...