Поиск в Arraylist - PullRequest
       33

Поиск в Arraylist

0 голосов
/ 05 января 2011

В настоящее время у меня есть два класса.Классный класс и школьный класс.Я хотел бы написать метод в классе школы public void showClassRoomDetails, который бы находил сведения о классе, используя только имя учителя.

Например, имя учителя = Даниель имя класса = Наука

имя учителя = Боб имя класса =Maths

поэтому, когда я введу Боба, он напечатает Боба и Maths

много, спасибо

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(int classroomId, String TeacherName)
{
    if (classroomId < classrooms.size() ) {
        classrooms.get(classroomId).setTeacherName(TeacherName);
    }
}

public void showClassRoomDetails
{
    //loop
   System.out.println(returnClassRoomName);
   System.out.println(returnTeacherName);     
}
}

Ответы [ 3 ]

1 голос
/ 05 января 2011

Вам действительно нужен список здесь? Карта, содержащая классную комнату - ассоциации учителей будут более полезными для того, чего вы пытаетесь достичь. Но в вашем коде есть и странные вещи: например, почему вы держите classRoomName и teacherName в качестве переменных экземпляра в вашем классе School?

0 голосов
/ 05 января 2011

Поскольку вы используете ArrayList, вы можете просто использовать a для каждого оператора:

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

В качестве небольшого предложения не называйте ваши методы returnXxx (), вместо этого используйте getXxx (), это -стандартное Javabean соглашение.

0 голосов
/ 05 января 2011

Измените сигнатуру вашего метода, чтобы принять targetTeacherName в качестве параметра. Перебирай классы, пока не найдешь одного с этим учителем. Вывести информацию об этом классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...