我刚刚开始在大学学习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阵列,我需要链接其中的每个。我想到了数组中的数组。寻求帮助。
答案 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提供的解决方案更优雅,更适合。另一方面,我提供的解决方案允许您研究数组以外的数据结构。