2维数组

时间:2013-11-22 16:56:29

标签: java arrays

如何使用一维数组存储二维数组的一维? 这是我到目前为止,我只是不能让1D数组存储2D阵列中的任何东西。

编辑:循环完全按照需要工作。我只需要制作2个一维数组来存储2维数组的每个维度。

int[][] tutorData = { // students per day (MTW) per tutor
    {25, 3, 0}, // Amy
    {14, 5, 12}, // John
    {33, 22, 10}, // Nick
    {0, 20, 5}}; // Maria

int numOfDays = tutorData[0].length; // number of days = number of "columns"
int numOfTutors = tutorData.length; // number of tutors = number of "rows"

int[] sumPerDay = {tutorData[i]};
sumPerDay = new int [numOfDays]; // array to store total # of students per day
int[] sumPerTutor = {tutorData[j]};
sumPerTutor = new int[numOfTutors]; // array to store total # of students per tutor

for (int i = 0; i < tutorData.length; i++) {
        for (int j = 0; j < tutorData[i].length; j++) {
            if (j == 0) {
                System.out.println("Tutor " + (i + 1) + " met: " + tutorData[i][j] + "students on (M) ");
            }
            if (j == 1) {
                System.out.println("Tutor " + (i + 1) + " met: " + tutorData[i][j] + "students on (T) ");
            }
            if (j == 2) {
                System.out.println("Tutor " + (i + 1) + " met: " + tutorData[i][j] + "students on (W) ");
            }
            System.out.println();
        }

2 个答案:

答案 0 :(得分:3)

这是一个二维数组,因为tutorData[i]是一个数组:

int[] sumPerDay = {tutorData[i]};

试试这个:

int[] sumPerDay = tutorData[i];

答案 1 :(得分:0)

您需要使用嵌套循环遍历2d数组,并将每个列和行中的值总和保存到2个不同的数组中。

int[][] tutorData = { // students per day (MTW) per tutor
                {25, 3, 0}, // Amy
                {14, 5, 12}, // John
                {33, 22, 10}, // Nick
                {0, 20, 5}}; // Maria

int numOfDays = tutorData[0].length; // number of days = number of "columns"
int numOfTutors = tutorData.length; // number of tutors = number of "rows"
int[] sumPerDay = new int [numOfDays]; // array to store total # of students per day
int[] sumPerTutor = new int[numOfTutors]; // array to store total # of students per tutor

for(int i=0; i<numOfDays; i++){
    for(int j=0; j<numOfTutors; j++){
        sumPerDay[i] += tutorData[j][i];
        sumPerTutor[j] += tutorData[j][i];
    }
}

sumPerDay将包含每列中的值总和=每天的学生总数。

sumPerTutor将包含每行中的值总和=每位导师的学生总数。