Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.6k views
in Technique[技术] by (71.8m points)

foreach - Iterating over two arrays simultaneously using for each loop in Java

Student's names(String[]) and corresponding marks(int[]) are stored in different arrays.

How may I iterate over both arrays together using for each loop in Java ?

void list() {

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

One trivial way could be using index variable in the same loop. Is there a good way to do?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to do it using the regular for loop with an index, like this:

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]);
}

A better approach would be using a class to store a student along with his/her marks, like this:

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());
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...