【发布时间】:2014-03-08 15:27:45
【问题描述】:
如何在多个二维数组之间进行迭代。例如,我想查找居住在 Cobb、1970 年以后出生并在 Evan Duggan 教授的课程中获得 C 或更好的所有学生。这两个表共享 n 个共同的用户 ID,例如“0033”
public class JavaApplication2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String [ ][ ] students = {
{ "0033", "Sandra", "Smith", "Cobb", "1989" },
{ "1144", "Bo", "Harrison", "DeKalb","1987" },
{ "2255", "Sam", "Mitchell", "Cobb", "1969"},
{ "3366", "Sabrina", "Jones", "Cobb", "1979"},
{ "4477", "Harry", "Johnson", "Cobb", "1982"},
{ "5588", "Lisa", "Simpson", "Paulding", "1982"}
};
String[ ][ ] grades = {
{ "5588", "201405", "CSE", "1301J", "A", "Ian Salts" },
{ "5588", "201405", "COMM", "2400","B", "Evan Duggan" },
{ "5588", "201408", "CSE", "1302J", "A", "Ian Salts"},
{ "0033", "201405", "CSE", "1301J", "C", "Ian Salts"},
{ "0033", "201405", "COMM", "2400", "A", "Evan Duggan"}
};
for (int i = 0; i < students.length; i++)
{
System.out.print(students[ i ] [ 0 ] + ": ");
for (int j = 1; j < students[ i ].length; j++)
{
System.out.print(students[ i ][ j ] + " ");
}
System.out.println( );
}
System.out.println( );
for (int i = 0; i < grades.length; i++)
{
System.out.print(grades[ i ] [ 0 ] + ": ");
for (int j = 1; j < grades[ i ].length; j++)
{
System.out.print(grades[ i ][ j ] + " ");
}
System.out.println( );
}
for ( int i=0; i<grades.length; i++) {
for(int j=0; j< grades[i].length; j++) {
if ( grades[i][j].equals("A") && grades [i][5].equals("Evan Duggan")) {
System.out.println("The student ID is "+ grades[i][0]);
}
else if ( grades[i][j].equals("B") && grades [i][5].equals("Evan Duggan")){
System.out.println("The student ID is "+ grades[i][0]);
}
else if ( grades[i][j].equals("C") && grades [i][5].equals("Evan Duggan")){
System.out.println("The student ID is "+ grades[i][0]);
}
}
}
}
}
【问题讨论】:
-
我会首先考虑如何手动完成此操作。遍历第一个数组,当你看到你想要的元素是
"Cobb",然后查看该数组元素中的 ID,遍历第二个数组以查找 ID ... -
顺便说一句,正确的方法不是使用多维数组。相反,您将定义一个单独维护所有这些字段的
Student类,以及类似的Grade类。而不是 ID 字段,您可能希望Grade类引用Student;您可以使用Map,以便您可以通过 ID 查找学生。但如果这些都是你还没有学过的概念,那我只是给你一些值得期待的东西。
标签: java arrays loops search for-loop