按列将数据添加到二维数组中

时间:2018-01-12 01:28:50

标签: java arrays multidimensional-array

我目前正在尝试使用Java为我的数据构建数据表。但是,我的数据按列排列(因此对于一个列标题,说"金额运行",我有一个数组用于&#34的所有值;金额运行")。换句话说,我有一个值的数组,用于"金额运行"的所有值,我需要将它们排列成一列而不是一行。所以我的问题是"有没有办法初始化2-D数组,以便可以逐列初始化它(因为我知道初始化2-D数组的唯一方法是通过做

Object[][] array = { {"word1","word2"},{"word3","word4"}}

但是,这是按行而不是按行。那么,我该如何初始化它以便" word3"和" word2"是在#34;阵列" (" word1"和" word2"目前在#34;阵列")。

(如果解决方案不使用循环,它是最好的,但如果这是唯一的方法,那很好)

2 个答案:

答案 0 :(得分:1)

要以任何方式填充整个数组,但已经定义的数组,您必须知道数组的长度。这样做有两种选择。您可以预设一个确定的数组长度和宽度,

Object[][] array = new Object[3][27];

或者您可以向应用程序用户询问一个。

 System.out.print("Please enter an array length and column length: ");
 int m = input.nextInt();
 int x = input.nextInt();

 Object[][] array = new Object[m][x]; 

了解阵列大小后

    // If you are initializing by user input, then

    System.out.println("Enter column one: ");
    for (int i = 0; i < array.length; i++){
        for (int j = 0; j < array[i].length; j++){
            array[i][j] = input.nextLine();
        }
    }

    // Will not end until the column has finished by filled with the added user input.
    // You will loop until your entire array.length is filled



    // Same basic principle if you are not looking to use user input.

    for (int i = 0; i < array.length; i++){
         for (int j = 0; j < array[i].length; j++){
              array[i][j] = someObject;     // someObject meaning some predetermined value(s)
         }
    }

希望这有帮助!

答案 1 :(得分:0)

Java没有特定的构造函数来执行您要求的任务,但是您可以使用for循环来解决您的问题。

for (int i = 0; i < columns; i++){
       for(int j = 0; j < rows ; j++){
               array[j][i] = “word” //initialize with some value
       }

}

使用此代码,您可以逐列初始化数组。