繁体   English   中英

查找未知尺寸的二维数组的最大高度和宽度(Java)

[英]Finding Maximum Height and Width for 2D Array of Unknown Dimensions (Java)

在Java中,我想从一个简单图像数组的两个维度中获取最大元素,即:

int getWidth(Color[][] pixels){
    //return max of dimension 1
}

int getHeight(Color[][] pixels){
    //return max of dimension 2
}

我知道如何为Java中的1D数组执行此操作,我将在i <pixel.length的条件下运行for循环。 但是,我不确定.length对于2D数组如何工作,即使它确实起作用。 我将如何处理?

.length仍然有效吗?

2D数组只是一个数组,其中的项是其他数组。 由于.length适用于一维数组,因此它肯定会适用于所有数组-尺寸的大小无关紧要。

但是pixels.length给出了父数组的长度-即包含其内部所有其他数组的数组。 要获取第二维的长度,您将必须获取其内部数组的长度。

那么,我们如何获得第二维的长度?

我们知道所有这些数组都必须具有相同的长度,因此我们仅在位置0处使用一个数组,因为它是唯一可以100%确保将始终存在的数组-数组应始终至少包含一个元素。

然后,我们只获得该数组的长度pixels[0].length

如果我们考虑2D数组,则它是一个包含对其他数组的引用的数组。 如果我们这样考虑矩阵:

{
    {1,2,3},
    {4,6},
    {7,7,8,9}
}

因此,矩阵上方的高度为3 =否。 行。

矩阵的宽度为4 =最大值(每个数组中元素的数量)。

int getHeight(Color[][] pixels) {
    return pixels.length;
}

int getWidth(Color[][] pixels) {
    int maxCount = 0;
    int rows = pixels.length;
    for (int i = 0; i < rows; i++) {
        if (maxCount < pixels[i].length) {
            maxCount = pixels[i].length;
        }
    }
    return maxCount;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM