Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中使用arraylist索引调用另一个类中的方法?_Java - Fatal编程技术网

如何在java中使用arraylist索引调用另一个类中的方法?

如何在java中使用arraylist索引调用另一个类中的方法?,java,Java,目前我有两门课。一个教室和一个学校班级 public void addTeacherToClassRoom(教室我的教室,字符串TeacherName) 我希望我的方法addTeacherToClassRoom使用教室数组列表索引号来设置AcherName e、 g。 int 0=数学 int 1=科学 我想在int 1科学中设置一个名字“丹尼尔” 很多,谢谢 public class Classroom { private String classRoomName; private S

目前我有两门课。一个教室和一个学校班级

public void addTeacherToClassRoom(教室我的教室,字符串TeacherName)

我希望我的方法addTeacherToClassRoom使用教室数组列表索引号来设置AcherName

e、 g。 int 0=数学 int 1=科学

我想在int 1科学中设置一个名字“丹尼尔”

很多,谢谢

    public class Classroom
{
private String classRoomName;
private String teacherName;

public void setClassRoomName(String newClassRoomName)
{
    classRoomName = newClassRoomName;

}

public String returnClassRoomName()
{
    return classRoomName;
}

public void setTeacherName(String newTeacherName)
{
    teacherName = newTeacherName;

}

public String returnTeacherName()
{
    return teacherName;
}
}





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(Classroom myClassRoom, String TeacherName)
{
    myClassRoom.setTeacherName(TeacherName);
}

}
公共课堂
{
私有字符串classRoomName;
私有字符串教师名;
public void setClassRoomName(字符串newClassRoomName)
{
classRoomName=新classRoomName;
}
公共字符串returnClassRoomName()
{
返回classRoomName;
}
public void settacherName(字符串newTeacherName)
{
教师姓名=新教师姓名;
}
公共字符串returnTeacherName()
{
返回教师姓名;
}
}
导入java.util.ArrayList;
公立学校
{
私立ArrayList教室;
私有字符串classRoomName;
私有字符串教师名;
公立学校()
{
教室=新的ArrayList();
}
public void add教室(教室新建教室,字符串为教室名称)
{
教室。添加(新建教室);
classRoomName=classRoomName;
}
public void addTeacherToClassRoom(教室我的教室,字符串TeacherName)
{
我的教室.settacherName(教师姓名);
}
}

这够了吗?

我想你是在要求做这样的事情:

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

这将访问教室中的一个教室对象,并在其上调用settacherName方法。

我相信您正在寻找的方法是questions.indexOf(My教室)。这应该返回您正在查找的教室的索引

但是,为了使其可靠地工作,您应该在教室类上重写并实现hashCode()和equals()方法

public void addTeacherToClassRoom(Classroom myClassRoom, String teacherName){
  int index = classrooms.indexOf(myClassRoom);
  if(index == -1){
    //The classroom isn't in the list yet.
    myClassRoom.setTeacherName(teacherName);
    classrooms.add(myClassRoom);
  }else{
    //Just update the teacher on the existing classroom.
    classrooms.get(index).setTeacherName(teacherName);
  }
}

听起来您想假设列表中的某些索引值将对应于某些类,但是,使用动态扩展的数组,您似乎很难跟踪哪个索引是哪个。也许你最好有一个静态大小的列表,比如教室[2]?
public void addTeacherToClassRoom(Classroom myClassRoom, String teacherName){
  int index = classrooms.indexOf(myClassRoom);
  if(index == -1){
    //The classroom isn't in the list yet.
    myClassRoom.setTeacherName(teacherName);
    classrooms.add(myClassRoom);
  }else{
    //Just update the teacher on the existing classroom.
    classrooms.get(index).setTeacherName(teacherName);
  }
}