使用Java中的每个循环同时迭代两个数组

学生的姓名(String [])和相应的标记(int [])存储在不同的数组中。

我如何使用Java中的每个循环迭代两个数组?

void list() { for(String s:studentNames) { System.out.println(s); //I want to print from marks[] alongside. } } 

一个简单的方法可能是在同一个循环中使用索引变量。 有好办法吗?

实际上,潜在的问题是你应该将两个数组绑定在一起并迭代一个数组。

这是一个非常简单的演示 – 你应该使用getter和setter,你也应该使用List而不是数组,但这certificate了这一点:

 class Student { String name; int mark; } Student[] students = new Student[10]; for (Student s : students) { ... } 

您需要使用带索引的常规for循环来执行此操作,如下所示:

 if (marks.length != studentNames.length) { ... // Something is wrong! } // This assumes that studentNames and marks have identical lengths for (int i = 0 ; i != marks.length ; i++) { System.out.println(studentNames[i]); System.out.println(marks[i]); } 

更好的方法是使用课程将学生与他/她的分数一起存储,如下所示:

 class StudentMark { private String name; private int mark; public StudentMark(String n, int m) {name=n; mark=m; } public String getName() {return name;} public int getMark() {return mark;} } for (StudentMark sm : arrayOfStudentsAndTheirMarks) { System.out.println(sm.getName()); System.out.println(sm.getMark()); } 

如果他们都有相同的大小,我会写:

 for(int i = 0; i 

另一种方法是使用详细的for循环语句,如;

 int i,j; for(i = 0, j=0; i<= student.length-1 && j <=grades.length-1; i++,j++) { ... }