Javafree
Página Inicial do Fórum > Java Básico

Problemas com o uso do Contains()



Criar novo tópico   Responder tópico


  1. bessa2
    Posts:4


    Comment Arrow

    Publicado em: 28/06/2016 22:58:56

    Quero add um elemento no ArrayList ensalamento, porém, ele precisa preencher alguns pre-requisitos...


    Acontece que a verificação -- if(!ensalamento.contains(Turma)) -- não está funcionando... acredito que eu esteja fazendo algo errado... alguém pode me ajudar?

    p.s.: enviei os codigos em anexo.



  1. staroski
    Posts:4599


    Comment Arrow

    Publicado em: 29/06/2016 12:51:42

    O objeto "ensalamento" é qual tipo de coleção?

    Como estão implementados os métodos "hashCode" e "equals" da classe "Turma"?

    Posta o código completo das suas classes.
    _________________

    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC
    Faço seu trabalho Java,
    clique aqui

    Acesse http://www.guj.com.br/



  1. bessa2
    Posts:4


    Comment Arrow

    Publicado em: 02/07/2016 16:11:50

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



    @Override
    public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((turma == null) ? 0 : turma.hashCode());
    return result;
    }

    @Override
    public boolean equals(Object obj) {
    if (this == obj)
    return true;
    if (obj == null)
    return false;
    if (getClass() != obj.getClass())
    return false;
    TurmaEmSala other = (TurmaEmSala) obj;
    if (turma == null) {
    if (other.turma != null)
    return false;
    } else if (!turma.equals(other.turma))
    return false;
    return true;
    }

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


    }




    Ensalamento


    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;
    Iterator<TurmaEmSala> it = ensalamento.iterator();
    TurmaEmSala obj;
    while(it.hasNext()){
    obj=it.next();
    if(turma==obj.turma){
    return obj.sala;
    }
    }
    /*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) {
    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;
    }

    }



  1. staroski
    Posts:4599


    Comment Arrow

    Publicado em: 05/07/2016 12:41:29

    Sua lista de ensalamentos é do tipo TurmaEmSala, então você só vai inserir instâncias de TurmaEmSala, mas você está verificando se dentro dessa lista existe um objeto Turma


    _________________

    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC
    Faço seu trabalho Java,
    clique aqui

    Acesse http://www.guj.com.br/



  1. Relacionados