我希望我的方法public void showClassRoomDetails(String teacherName)
使用teacherName返回Arraylist索引号。
由于
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 :(得分:4)
使用常规循环,而不是foreach循环:
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 :(得分:2)
使用常规for循环(for (int i=0;i<classrooms.size();i++)
)或使用ArrayList.indexOf(classroom)
。
答案 2 :(得分: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;
}
或者,保留一个针对每个not true
条件递增的计数器(在if
语句中)。
答案 3 :(得分: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;
}