是否可以在Java中覆盖整数数组?

时间:2017-02-20 00:55:11

标签: java override method-overriding function-overriding

我有一个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] + " " );
    }
}

1 个答案:

答案 0 :(得分:2)

数组类是final:你不能扩展它们并覆盖它们的方法。

要轻松打印数组的内容,您可以使用java.util.Arrays中的方法,如下所示:

System.out.println(Arrays.toString(tmp));

另一种方法是使用List代替数组,这些数组实现了&#34;适当的&#34; toString方法。