我有一个ArrayList ArrayList<int[]>
,它有一维的整数数组作为它的成员。
当我正在调试并从下面的代码中设置tmp
时,我希望能够看到tmp
的内容,这意味着我必须覆盖toString
} int[]
的方法?
目前,我可以使用下面的print
方法打印出我的内容。但是,我不想理想地这样做,并且希望看到tmp
的内容及其成员来自调试器。
PS:我不希望调试监视表达式,例如tmp.get(0)[0]
等
public class TryPrinting {
public static void main( String[] args ) {
int[][] people = { {7,0}, {7,1}, {6,1}, {5,0}, {5,2}, {4,4} };
TryPrinting obj = new TryPrinting();
obj.test( people );
}
public void test( int[][] people)
{
int n = people.length;
ArrayList<int[]> tmp = new ArrayList<>();
for (int i = 0; i < n; i++)
{
tmp.add(people[i][1], new int[]{people[i][0], people[i][1]});
print( tmp );//This works
System.out.println( tmp );//But I want this to work
System.out.println( "" );
}
}
/* print al */
public void print( ArrayList<int[]> al )
{
for(int i = 0;i<al.size();i++)
{
print( al.get( i ) );
}
System.out.println( "" );
}
/* print 1d array */
public void print(int[] a)
{
for(int i = 0;i<a.length;i++)
System.out.print( a[i] + " " );
}
}
答案 0 :(得分:2)
数组类是final
:你不能扩展它们并覆盖它们的方法。
要轻松打印数组的内容,您可以使用java.util.Arrays
中的方法,如下所示:
System.out.println(Arrays.toString(tmp));
另一种方法是使用List
代替数组,这些数组实现了&#34;适当的&#34; toString
方法。