【问题标题】:Transposed array is not printing correctly转置数组未正确打印
【发布时间】:2013-12-16 21:20:34
【问题描述】:

我正在尝试打印此矩阵数组的转置版本,但它正在打印内存位置。关于如何打印实际数组的任何输入?

这是它打印的内容:[[I@4b71bbc9, [I@17dfafd1, [I@5e8fce95]

    import java.util.*;

class MatrixTranspose
{
    public static void main (String [] args)
    {
        int [] [] m = {
                    {3, 6, 9},
                    {4, 1, 5},
                    {5, 8, 7},              
                };

         System.out.println (Arrays.toString (transpose(m)));       
    }

    public static int [] [] transpose (int [] [] x)
    {
        int start = 1;

        for (int r = 0; r < x.length; r++)
        {
            for (int c = start; c < x[0].length; c++)
            {
                int temp = x[r][c];
                x [r][c] = x[c][r];
                x[c][r] = temp;
            }

            start++;
        }

        return x;
    }
}

【问题讨论】:

    标签: java arrays matrix transpose


    【解决方案1】:

    transpose(int[][] x) 返回一个二维数组。

    请改用Arrays.deepToString(Object[] a)

    如果元素 e 是原始类型的数组,则将其转换为 字符串通过调用适当的重载 Arrays.toString(e)。如果元素 e 是引用类型的数组, 通过递归调用此方法将其转换为字符串。

    System.out.println(Arrays.deepToString(transpose(m)));  
    

    【讨论】:

      【解决方案2】:

      请改用Arrays#deepToString

      在Java中,每个对象都有toString()方法,默认是显示类名表示,然后加上@,再加上hashcode。

      为了更好地理解您得到的输出,请参阅Arrays#toString 的实现:

      3860     public static String toString(int[] a) { {
      3861        if (a == null)
      3862            return "null";
      3863        int iMax = a.length - 1;
      3864        if (iMax == -1)
      3865            return "[]";
      3866
      3867        StringBuilder b = new StringBuilder();
      3868        b.append('[');
      3869        for (int i = 0; ; i++) {
      3870            b.append(a[i]);
      3871            if (i == iMax)
      3872                return b.append(']').toString();
      3873            b.append(", ");
      3874        }
      3875    }
      

      toString 被应用在一个数组上,得到了“奇怪”的输出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        • 1970-01-01
        • 2021-10-04
        • 1970-01-01
        相关资源
        最近更新 更多