2011-01-05 12 views
-1

私のメソッドpublic void showClassRoomDetails(String teacherName)に、teacherNameを使用してArraylistインデックス番号を返すことを希望します。 forループ(for (int i=0;i<classrooms.size();i++))を定期的に使用するか、またはArrayList.indexOf(classroom)を使用するかJavaのArraylistのインデックス番号を返す

public int showClassRoomDetails(String teacherName) 
{ 
    for (int i = 0; i < this.classrooms.size(); i++) 
    { 
     Classroom classroom = classrooms.get(i); 
     if (classroom.returnTeacherName().equals(teacherName)) 
     { 
      return i; 
     } 
    } 

    // Return -1 when the teacher was not found 
    return -1; 
} 
+1

特定の質問がありますか? –

+0

なぜこれをdownvoteでしたか? "質問"は暗黙的かもしれませんが、十分に明確です。 –

+1

新しいユーザーですが、次の「質問」の拡張子です:http://stackoverflow.com/questions/4599283、http://stackoverflow.com/questions/4596544、http://stackoverflow.com/questions/4593232 –

答えて

4

は、通常のループではなく、foreachループを使用してください。

2

おかげ

import java.util.ArrayList; 

public class School 
{ 
private ArrayList<Classroom> classrooms; 
private String classRoomName; 
private String teacherName; 

public School() 
{ 
    classrooms = new ArrayList<Classroom>(); 
} 

public void addClassRoom(Classroom newClassRoom, String theClassRoomName) 
{ 
    classrooms.add(newClassRoom); 
    classRoomName = theClassRoomName; 
} 

public void addTeacherToClassRoom(int classroomId, String TeacherName) 
{ 
    if (classroomId < classrooms.size()) { 
     classrooms.get(classroomId).setTeacherName(TeacherName); 
    } 
} 

public void showClassRoomDetails(String teacherName) 
{ 
    for (Classroom classroom : this.classrooms) 
    { 
     if (classroom.returnTeacherName().equals(teacherName)) 
     { 
      System.out.println(classroom.returnClassRoomName()); 
      System.out.println(classroom.returnTeacherName()); 
      break; 
     } 
    } 
} 


} 
0

これは何か?

for (int i = 0; i < classrooms.size(); i++) { 
    Classroom classroom = classrooms.get(i); 
    if (classroom.returnTeacherName().equals(teacherName)) { 
     System.out.println("Index: " + i); 
    } 
} 

はるかにエレガントに、また

public int showClassRoomDetails(String teacherName) { 
    for (int i = 0; i < classrooms.size(); i++) { 
     Classroom classroom = classrooms.get(i); 
     if (classroom.returnTeacherName().equals(teacherName)) { 
      return i; 
     } 
    } 

    return -1; 
} 

、(あなたのifステートメントの)各not true条件のために増分されますカウンターを保ちます。

0
//Return set containing multiple matched indexes 
public Set<Integer> showClassRoomDetails(String teacherName){ 
    Set<Integer> result = new HashSet<Integer>(); 
    int i=0; 
    for (Classroom classroom : this.classrooms){ 
     if (classroom.returnTeacherName().equals(teacherName)) 
      result.add(i); 
     i++; 
    } 
    return result; 
} 
関連する問題