Vou postar tudo aqui pra ficar melhor a visualização:
public class Ensalamento {
ArrayList<Sala> salas = new ArrayList<Sala>();
ArrayList<Turma> turmas = new ArrayList<Turma>();
ArrayList<TurmaEmSala> ensalamento = new ArrayList<TurmaEmSala>();
public Ensalamento() {
}
/**
* @param salas
* @param turmas
* @param ensalamento
*/
public Ensalamento(ArrayList<Sala> salas, ArrayList<Turma> turmas, ArrayList<TurmaEmSala> ensalamento) {
this.salas = salas;
this.turmas = turmas;
this.ensalamento = ensalamento;
}
void addSala(Sala sala){
salas.add(sala);
}
void addTurma(Turma turma){
turmas.add(turma);
}
Sala getSala(Turma turma){
Sala retorno = null;
if(ensalamento.contains(turma)){
retorno = ensalamento.get(ensalamento.indexOf(turma)).sala;
}
return retorno;
}
boolean salaDisponivel(Sala sala, int horario){
return true;
}
boolean salaDisponivel(){
return true;
}
boolean alocar(Turma turma, Sala sala) {
TurmaEmSala enSala = new TurmaEmSala();
if(!ensalamento.contains(turma)){
if(turma.numAlunos > sala.capacidade){
return false;
}else if(turma.acessivel == sala.acessivel){
ensalamento.add(enSala);
return true;
}
}
return false;
}
}
public class TurmaEmSala {
Turma turma;
Sala sala;
public TurmaEmSala() {
}
/**
* @param turma
* @param sala
*/
public TurmaEmSala(Turma turma, Sala sala) {
this.turma = turma;
this.sala = sala;
}
}
public class Sala {
/**
* @param args
*/
int bloco;
int sala;
int capacidade;
boolean acessivel;
public Sala() {
super();
}
/**
* @param bloco
* @param sala
* @param capacidade
* @param acessivel
*/
public Sala(int bloco, int sala, int capacidade, boolean acessivel) {
super();
this.bloco = bloco;
this.sala = sala;
this.capacidade = capacidade;
this.acessivel = acessivel;
}
String getDescricao() {
return "Bloco " + this.bloco + ", Sala " + this.sala + " (" + this.capacidade + " lugares, "
+ (this.acessivel ? "acessível" : "não acessível") + ")";
}
}
public class Turma {
String nome;
String professor;
int numAlunos;
boolean acessivel;
String[][] turma = {
{"segunda ","terça ","quarta ","quinta ","sexta "},
{"8hs","10hs","12hs","14hs","16hs","18hs","20hs"}
};
ArrayList<Integer> horarios = new ArrayList<Integer>();
public Turma() {
super();
}
/**
* @param nome
* @param professor
* @param numAlunos
* @param acessivel
*/
public Turma(String nome, String professor, int numAlunos, boolean acessivel) {
this.nome = nome;
this.professor = professor;
this.numAlunos = numAlunos;
this.acessivel = acessivel;
}
void addHorario(int i) {
horarios.add(i);
}
String getHorariosString() {
String retorno= "";
int i;
Iterator<Integer> horario = horarios.iterator();
while(horario.hasNext()){
i= horario.next().intValue();
retorno += turma[0][i/7]+turma[1][(i%7)-1];
if(horario.hasNext()){
retorno+=", ";
}
}
return retorno;
}
String getDescricao() {
return "Turma: " + this.nome + "\nProfessor: " + this.professor + "\nNúmero de Alunos: "
+ this.numAlunos + "\nHorário: " + getHorariosString() + "\nAcessível: "
+ (this.acessivel ? "sim" : "não");
}
}
Acho que assim fica melhor de identificar onde está meu erro…