System.out.print(java.util.Arrays.toString(Array))

解决方案 »

  1.   

    for(int i : arraay){System.out.printf("%d ",i);}
    System.out.println();
      

  2.   

    System.out.println打印的时候调用了数组的toString方法,方法实现参见Object#toString
      

  3.   

    lz打印的是数组首地址,打印数组1L,2L的方法都行
    java中可以给类重写一个toString()的方法,这样就可以按照lz设定的方式打印了,否则打印地址
      

  4.   

    System.out.print(Array) 实际上执行的是System.out.print(Array.toString)
      

  5.   

    那我这样写
    代码1:
    int[] a = {1,2,3};
    String output = Arrays.toString(a);
    System.out.println(output);显示结果       [1,2,3]代码2:
    int[] a = {1,2,3};
    System.out.println(a);显示结果       [I@19e3cd51如你所说结果应该相同啊,为什么会不一样呢?
      

  6.   

    LZ没理解好Object的toString方法
    int[] a = {1,2,3};
    System.out.println(a); //这里相当于 System.out.println(a.toString());
    a是个数组对象,没有重写toString方法,所以调用的是父类Object的toString方法,Object的toString方法缺省是打印对象的类型+@+对象的哈西值
    int[] a = {1,2,3};
    System.out.println(a);
    System.out.println(a.getClass().getName() + "@" + Integer.toString(a.hashCode(), 16)); 
    两个打印结果等效
      

  7.   

    Object中的toSring方法打印的是类名和地址,所以出来了一堆数
    不是调用的object中的toSring 是调用的Arrays中的toString方法,这两个toString是有区别的
    你直接System.out.println(Arrays.toString(Array));
      

  8.   

    楼主,你去看看System.out.println的源代码,这个函数只能打印char数组,其他的形参都是long,int,double,float型,所以当你
    System.out.println(a)时,实际函数是把数组a的地址转化为 int or long,然后进行打印