使用Arrays.toString()输出数组的元素

时间:2017-12-10 13:15:07

标签: java arrays

我已经使用下面的代码来创建和填充数组,但是,在打印数组时,我没有得到使用Arrays.toString()函数时所期望的结果。

而不是打印

newArray: [2, 4, 6]
newArray: [8, 10, 12]
etc..

打印

newArray: [[I@15db9742, [I@6d06d69c, [I@7852e922, [I@4e25154f]
newArray: [[I@15db9742, [I@6d06d69c, [I@7852e922, [I@4e25154f]
etc..

代码:

public static void main(String[] args) {
    int[][] newArray = new int[4][3];
    int number = 2;
    for (int rowCounter = 0; rowCounter < newArray.length; rowCounter++) {
        for (int colCounter = 0; colCounter < newArray[rowCounter].length; colCounter++) {
            newArray[rowCounter][colCounter] = number;
            number += 2;
        }
        System.out.println("newArray: " + Arrays.toString(newArray));
    }
}

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:12)

您可以使用deepToString代替gem FastImage

Resizing Gem

答案 1 :(得分:3)

尝试

{{1}}

答案 2 :(得分:3)

根据您的需要,确保您声明的数组为one-dimensional。您声明了two dimensional array您没有正确使用它 更改int[][] newArray to int[] newArray

答案 3 :(得分:2)

当你在内部调用toString(Object[] a)时,它将调用Object.toString方法。

(obj == null) ? "null" : obj.toString();

如果你想要打印所有元素,那么你必须deepToString而不是toString method.Internally它将为一个对象类型数组循环数组并转换为字符串。

例如,在你的情况下,每个数组元素都是int数组,将调用toString。

if (eClass.isArray()) {
                    if (eClass == int[].class)
                        buf.append(toString((int[]) element));