如何将两个数组链接在一起

时间:2011-05-04 18:09:14

标签: java arrays

我刚刚开始在大学学习java课程,我想链接两个数组。

我创建了一个名为StudentID []的一维数组,这将存储学生ID。

我创建了另一个名为SubjTaken [] []的2D数组,其中包含主题,学分,成绩字母。

现在,我想链接这两个数组。例如,

Inpute将是:

  

输入学生ID:

     

123456

     

输入主题:

     

MATH101 4 A

     

PHYS201 3 B +

然后它会将它们存储在两个数组中。并且以后可以调用它。例如:

  

输入学生ID:

     

123456

     

您要采取的主题是:

     

MATH101 4 A

     

PHYS201 3 B +

我的问题是:我不知道如何与他们建立链接。如果我有5个学生,我需要有5个2d阵列,我需要链接其中的每个。我想到了数组中的数组。寻求帮助。

3 个答案:

答案 0 :(得分:6)

只需创建一个Student List的{​​{1}}类,而不是摆弄数组。

答案 1 :(得分:2)

我同意Isaac Truett。

进一步详细说明,您可以执行以下操作:


import java.util.list;
public class Student {
    String id;
    List<SubjectReport> progressReport;
}

public class SubjectReport {
    Subject subject;
    Grade grade;
}

public class Subject {
   String courseName;
   int courseNumber;
}

public enum Grade {
    A;
    A-;
    B+;
    B;
    B-;
    F;
}

答案 2 :(得分:0)

以您建议的方式链接数组并不理想,因为您最终会得到3维数组,这会使生活变得更复杂一些。但是,您可以使用的数据结构如HashMap。 Hashmaps允许您将数据存储在键值对组合中,因此在您的情况下,您可以使用具有学生ID作为其键的Hashmap,并且相应的值将是相应的2d数组。所以你可以这样:

HashMap<String, String[][]> studentData = new HashMap<String, String[][]>();
//Add some data to it
studentData.put(studentID, subjTaken);

您可以查看我提供的API链接,了解您可以执行的操作。要打印HashMap中的所有数据,您可以使用以下内容:

for (String id : studentData.keySet())
{
    System.out.println("Student ID: " + id");
    String[][] subjects = studentData.get(id);
    for(String str :subjects)
    {
         System.out.println("Subject: " + str);
    }
}

另外,Isaac Truett提供的解决方案更优雅,更适合。另一方面,我提供的解决方案允许您研究数组以外的数据结构。