java - 从二维数组中删除空值以计算其元素数

标签 java null multidimensional-array

我正在尝试计算不均匀二维数组中的元素数量。如果我尝试打印每个元素,它会抛出 null 异常。

1-如何让它忽略空条目?

2- 如何计算此矩阵中的元素数以创建一个等于此矩阵中元素数的新数组?

public static void main(String[] args) {

    int[][] mat2 = { {1, 2, 3},
    {4, 5},
    {6},
    null,
    {},
    {7,8}};

    System.out.println("rows " + mat2.length);

    for (int r = 0; r < mat2.length; r++) { 
        for (int c = 0; c < mat2[r].length; c++) {
            int numElements = mat2[r][c]; 
            System.out.println(numElements);
        }
    }

    System.out.println("cols " +mat2[0].length);

    //for (int[] row : mat2)
    //System.out.println(Arrays.toString(row));

}

最佳答案

您必须手动检查它。

例如这个:

public static void main(String[] args) {
    int[][] mat2 = {{1, 2, 3},
    {4, 5},
    {6},
    null,
    {},
    {7, 8}};
    System.out.println("rows " + mat2.length);
    for (int r = 0; r < mat2.length; r++) {
        if (mat2[r] == null) {
            System.out.println("There is null");
        } else {
            for (int c = 0; c < mat2[r].length; c++) {
                int numElements = mat2[r][c];
                System.out.println(numElements);
            }
        }
    }
    System.out.println("cols " + mat2[0].length);
}

有这样的输出:

rows 6
1
2
3
4
5
6
There is null
7
8
cols 3

关于java - 从二维数组中删除空值以计算其元素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445071/

相关文章:

Main 中的 Java 构造函数用户输入在构造函数中以 Null 结尾

c - 通过指针的二维数组

java - 为什么无法使用 Apache POI 设置行和列的值?

java - Kotlin/Java,字符串数组在方法调用时尚未初始化

URL 上的 Swift Nil 异常

Python:多维字典

ios - 更新多级 plist objective-c

JavaFX 启动内部应用程序类

java - 在夏令时前后将 Duration.ofDays(1) 和 Period.ofDays(1) 添加到 ZonedDateTime 之间的区别

java - 捕获异常,重新抛出断言