可以在Java中重写整数数组吗?
我有一个ArrayList可以在Java中重写整数数组吗?,java,overriding,Java,Overriding,我有一个ArrayListArrayList,它的成员是一维整数数组 当我在调试并通过下面的代码将手表设置为tmp时,我希望能够看到tmp的内容,这意味着我必须重写int[]的toString方法 目前,我可以通过使用下面的print方法将内容打印出来,从而查看我的内容。但是,我不希望理想地这样做,我希望看到tmp的内容以及调试器中的成员 PS:我不想使用调试监视表达式,比如说,tmp.get(0)[0]等 public class TryPrinting { public static
ArrayList
,它的成员是一维整数数组
当我在调试并通过下面的代码将手表设置为tmp
时,我希望能够看到tmp
的内容,这意味着我必须重写int[]
的toString
方法
目前,我可以通过使用下面的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] + " " );
}
}
公共类打印{
公共静态void main(字符串[]args){
int[]people={{7,0}、{7,1}、{6,1}、{5,0}、{5,2}、{4,4};
TryPrinting obj=新TryPrinting();
对象测试(人);
}
公共无效测试(int[][]人)
{
int n=人的长度;
ArrayList tmp=新的ArrayList();
对于(int i=0;i 对于(int i=0;i数组类是final
:您不能扩展它们并重写它们的方法
要轻松打印数组的内容,可以使用java.util.Arrays
中的方法,如下所示:
System.out.println(Arrays.toString(tmp));
另一种方法是使用List
s代替数组,数组实现了“适当的”toString
方法。数组类是final
:不能扩展它们并重写它们的方法
要轻松打印数组的内容,可以使用java.util.Arrays
中的方法,如下所示:
System.out.println(Arrays.toString(tmp));
另一种方法是使用List
s代替数组,数组实现“适当的”toString
method.我想如果你将int设置为Integer,它会变成一个类类型的对象,我猜你也会得到toString…代码上的注释意味着你试图打印到控制台,但你的问题意味着你想让调试器显示它。它是什么?你在使用哪个IDE?来响应你的问题我想如果你把int设为Integer,它会变成一个类类型的对象,我猜你也会得到字符串…代码上的注释意味着你试图打印到控制台,但你的问题意味着你想让调试器显示它。它是哪一个?你在使用哪一个IDE?回答你的问题答案是否定的。