java - 如何计算参差不齐的二维数组的列长度?
问题描述
我想计算二维数组中行和列的长度。我知道如何做行部分但是我不知道如何在这个数组中找到列的长度。
public class array2D {
public static void main(String args[]) {
int maxNumberOfColumns = 8;
Integer[][] j = {
{2, 4, 8, 5, 1, 3, 7, 2},
{6, 7, 4, 8, 2},
{2, 3, 5, 9, 7, 1}};
for (int row = 0; row < j.length; row++) {
for (int col = 0; col < j[row].length; col++) {
System.out.print(j[row][col] + " ");
}
System.out.println();
}
System.out.println();
System.out.println("------------");
System.out.println();
for (int row = 0; row < j.length; row++) {
System.out.println("row "+row+" has "+j[row].length+" elements");
}
System.out.println();
for (int col = 0; col < maxNumberOfColumns; col++) {
//code I don't know
}
}
}
解决方案
您可以将最后一个 for 循环更改为以下以打印每列的计数。我在这里使用一个内部循环来计算元素的数量
for (int col = 0; col < maxNumberOfColumns; col++) {
int count = 0;
for (int i = 0; i < j.length; i++) {
if (j[i].length > col) {
count++;
}
}
System.out.println("Column " + (col + 1) + " has " + count + " elements");
}
另一种解决方案是计算第一个循环中的最小列数,使用
minNumberOfColumns = length < minNumberOfColumns ? length : minNumberOfColumns;
然后将最后一个循环更改为
System.out.println("Column 1 to " + minNumberOfColumns + " has " + j.length + " elements");
for (int col = minNumberOfColumns; col < maxNumberOfColumns; col++) {
int count = 0;
for (int i = 0; i < j.length; i++) {
if (j[i].length > col) {
count++;
}
}
System.out.println("Column " + (col + 1) + " has " + count + " elements");
}
推荐阅读
- sql - 我可以在 sql 触发器的 If 语句中有多个查询语句吗?
- matlab - Matlab中匿名函数定义中的匿名函数调用
- javascript - 如何通过电子邮件发送 PDF,其内容以表格形式显示?
- c++ - 在循环的下一次迭代中重置布尔值
- wordpress - Gulp 的浏览器与 MAMP 同步,未加载图像
- npm - GYP 问题安装 yo hyperledger
- javascript - 如何将数组作为对象数组返回?
- ios - 由于缺少 NSPhotoLibraryAddUsageDescription 而报告应用程序崩溃,但我的应用程序从不使用任何照片
- javascript - 在 Promise.all() 之外无法访问数据
- javascript - 获取音频文件并将其加载到表单附件中