[英]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.