我在使用2D阵列时遇到了问题。如果我用system.out.println替换数组,我成功获取了所有5个项目,所以我认为问题是输入和输出的数组语法。我在这个主题上阅读的几乎所有帖子都引用了硬编码值,因此我希望这篇文章(一旦确定问题)将来会使用非硬编码值帮助其他人。谢谢!
int count = 10;
String[][] array2d = new String[count][2];
int row = 0, column = 0;
while(count > 0){
if(count <= 5){
array2d[row][column] = variable1 + variable2;
row++;
column++;
}
count--;
}
for(row = 0; row < 5; row++){
System.out.println("Item #: " + array2d[row][0] + " Item Description: " + array2d[0][column]);
}
}
通过更改以下内容解决了上述问题:
int count = 10;
String[][] array2d = new String[count][2];
int row = 0, column1 = 0, column2 = 2;
while(count > 0){
if(count <= 5){
array2d[row][column1] = variable1;
array2d[row][column2] = variable2;
row++;
}
count--;
}
for(row = 0; row < 5; row++){
System.out.println("Item #: " + array2d[row][column1] + " Item Description: " + array2d[row][column2]);
}
}
答案 0 :(得分:0)
在上面的代码中,数组维度为:[count] [2]。但是你的代码正在增加列和行变量。
array2d[row][column] = line + String.valueOf(count);
row++;
column++;
您需要检查列的值,并在超过2时重置。
if(count <= 5 ){
if(column >= 2)
column=0;
array2d[row][column] = line + String.valueOf(count);
row++;
column++;
}
答案 1 :(得分:0)
2D数组在这里表示可用2个索引编制索引的数据。
如果你需要一维元素数组并使用第二维来索引元素的属性,那么你就是在滥用OOP。
你应该声明这样的类:
class Item {
String id;
String description;
}
使用Item
s的一维数组:
int count = 10;
Item[] array = new Item[count];
int row = 0;
while(count > 0){
if (count <= 5) {
array[row].id = variable1;
array[row].description = variable2;
row++;
}
count--;
}
for(row = 0; row < 5; row++){
System.out.println("Item #: " + array[row].id + " Item Description: " + array[row].description);
}