为什么我的代码没有返回我想要的操作?

时间:2019-07-08 03:55:04

标签: java arrays loops return

我的代码正在返回乱码(至少对我来说),我不知道如何使它正常工作。

我尝试了一些不同的返回配置,但是没有一个能按我希望的方式工作。

class Main {
  public static void main(String[] args) {
    int[] reversing= {1,5,3,14,5,26,7,8,9,10,928,0};
      System.out.println(reverse(reversing));
  }
  public static int[] reverse(int[] nums){
    for(int i=0;i<nums.length;i++){
      nums[i]=nums[nums.length-1];
    }
    return nums;
  }
}

该代码应该采用整数数组并将其取反,但只返回[I @ 5acf9800

1 个答案:

答案 0 :(得分:1)

System.out.println(<>)打印int []数组对象的哈希码,而不是数组的元素。

您需要遍历整个数组的打印语句。但是除此之外,您的方法实际上并不会反转数组。

public class Reverser {
public static void main(String[] args) {
    int[] reversing = { 1, 5, 3, 14, 5, 26, 7, 8, 9, 10, 928, 0 };
    for (int i : reverse(reversing)) System.out.println(i);
}

public static int[] reverse(int[] nums) {
    int [] reversed = new int[nums.length];
    int reverseIndex = nums.length - 1;
    for (int i = 0; i < nums.length; i++) {
        reversed[reverseIndex--] = nums[i];
    }
    return reversed;
}

}