使用Arrays.deepToString(Object [] arr)在Java中打印基元数组数组的元素

时间:2011-10-16 15:54:39

标签: java

我在使用Arrays.deepToString( Object[] arr )方法在Java中打印基元数组的元素时遇到问题。如果我将arr定义为int[][] T = { {0,1},{2,1} },则T[0]T[1]分别是1D整数数组[0,1]和[2,1],因此是Java对象。例如,我认为Arrays.deepToString( T[0] )会打印[0,1]。但我得到一个编译时错误,说它找不到方法。这是程序。

import java.util.Arrays;

class Test {
   public static void main( String[] args ) {
      int[][] T = {{0,1},{2,1}};
      System.out.println( "\nT[0] is " + Arrays.deepToString( T[0] ) + "." );
      System.out.println( "\nT[1] is " + Arrays.deepToString( T[1] ) + "." );
   }
}

我收到编译时错误,说它无法在代码的第6行和第7行找到符号方法deepToString( int[] )。我错过了一些明显的东西吗我已经导入了正确的类java.util.Arrays,我正在根据正确的签名调用该方法。

请帮忙。

2 个答案:

答案 0 :(得分:0)

Sandeep,Arrays.deepToString期待一个对象数组,你传入一个整数基元数组。

您需要将二维数组从使用int基元更改为整数对象。这样,自动装箱在创建数组时负责从int到Integer的转换。

import java.util.Arrays;

class Test {
   public static void main( String[] args ) {
      Integer[][] T = {{0,1},{2,1}};
      System.out.println( "\nT[0] is " + Arrays.deepToString( T[0] ) + "." );
      System.out.println( "\nT[1] is " + Arrays.deepToString( T[1] ) + "." );
   }
}

答案 1 :(得分:0)

deepToString()接受Objects的数组,而不是基元。尝试:

public static void main( String[] args ) {
          Integer[][] T = {{0,1},{2,1}};
          System.out.println( "\nT[0] is " + Arrays.deepToString( T[0] ) + "." );
          System.out.println( "\nT[1] is " + Arrays.deepToString( T[1] ) + "." );
       }

http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#deepToString%28java.lang.Object []%29