2D长数组将额外的零附加到值

时间:2018-03-25 03:45:20

标签: java arrays

下面是我尝试将一些值添加到2D长数组的示例。对于数组的“左侧”,值正确打印。然而,右侧似乎在[i] [1](右侧)值上打印了额外的零。

这是为什么?是因为我正在为一个长数组分配一个真正的int,还是我在代码中犯了一个错误。

public class test {
public static void main (String [] args) {

        int printValue = 3;

        long [] [] programUserID = new long [printValue][printValue];
        for (int i=0; i<printValue; i++) {
            for (int j=0; j<printValue; j++) {
                programUserID[i][1] = 666;
            }
            programUserID[i][0] = 1998;
        }

        for (int x=0; x<programUserID.length; x++) {
            for (int y=0; y<programUserID.length; y++) {
                System.out.print(programUserID[x][y]);
            }
            System.out.println();
        }
    }
}

输出:

19986660
19986660
19986660

我希望能够使用2D长数组并能够分配所有[i] [1](右侧)值0并相应地从那里增加它们。

1 个答案:

答案 0 :(得分:1)

正在发生Extra Zeros,因为您正在创建第三组未设置为数字的值。

如果你只想要这两个值,那么代码可能是这样的:

public class Test {
    public static void main (String [] args) {

        final int programUsersLength = 3;

        long [] [] programUserID = new long [programUsersLength][2];
        for (int i = 0; i < programUsersLength; i++) {
            programUserID[i][0] = 1998;
            programUserID[i][1] = 666;
        }

        for (int x = 0; x < programUserID.length; x++) {
            for (int y = 0; y < programUserID[x].length; y++) {
                System.out.print(programUserID[x][y]);
            }
            System.out.println();
        }
    }
}