阵列数组| 2D阵列输入输出变量(不是硬编码值)

时间:2014-04-24 16:48:27

标签: java arrays

我在使用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]);
        }           
    }

2 个答案:

答案 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);
}