有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java反向整数数组

我只是好奇,但当我试图用它来反转一个数组时,它总是吐出一些不连贯的胡言乱语,而不是反转的数组,比如[I@43256ea2。你知道为什么会这样吗

public class Fiddle {
    public static void main(String[] args) {
        int[] number = {1,2,3,4,5};
        System.out.println(reverse(number));
    }
    public static int[] reverse(int[] a) {
        int[] b = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            b[a.length-1-i] = a[i];
        }
        return b;
    }
}

感谢您提供有关为什么会发生这种情况的任何想法(可能是因为我忘记了一些事情)


共 (4) 个答案

  1. # 1 楼答案

    下议院。朗

    ArrayUtils.reverse(int[] array)
    

    完成了

  2. # 2 楼答案

    使用实用程序方法^{}

    System.out.println(Arrays.toString(reverse(number)));
    

    数组类不重写Object.toString(),这意味着它们使用the default implementation provided by Object,即“type@hashcode_in_hex”。类型int[]的字符串表示形式是[I,这就是为什么您会看到这种“不连贯的胡言乱语”

  3. # 3 楼答案

    您正在打印数组的哈希。你应该这样做

    for(int i: reverse(number)){
      System.out.println(i);
    }
    
  4. # 4 楼答案

    试试这个:

    System.out.println(Arrays.toString(reverse(number)));
    

    这是java的一个“错误”——你必须使用Arrays.toString(),否则你会从Object得到默认的toString(),它会产生你所看到的输出