Dúvida - Java - Arrays

Como posso mudar o “estado” de um “Imóvel”? Estou resolvendo este exercício, porém me deparei com um Array que não consigo solucionar o problema. Eu preciso mudar o “estado” de um determinado imóvel que foi alugado, por exemplo. Da mesma forma eu preciso mudar o seu “estado” depois que eles foram “devolvidos”.

Remover e Inserir imóvel, que é a parte mais fácil, consegui fazer, o problema está nessas outras partes que deixei incompletas, não sei nem como começar esta parte. Veja meu código:

package br.edu.ifmt.estrutura.dados.dominio;

public class Imobiliaria {

private int quantidade;
Imovel definir[] = new Imovel[20];
public boolean Inserir(Imovel imovel) {
    for (int i = 0; i < definir.length; i++) {
        if (definir[i] == null) {
            this.definir[i] = imovel;
            return true;
        }
    }
    return false;
}
public boolean Remover(Imovel imovel) {
    for (int i = 0; i < definir.length; i++) {
        if (definir[i] != null) {
            this.definir[i] = null;
            return true;
        } else {
            return false;
        }
    }
    return false;
}
public boolean Alugar(Imovel imovel) {
}
public boolean Devolver(Imovel imovel) {
}
public String listarImoveis(String filtro) {
    for (int i = 0; i < definir.length; i++) {
        if 
 {
            
        }
    }
}

}

O exercício que me refiro é este:

Vc pode usar um outro array boolean para os alugados, não esqueça que quando inserir, também será necessário colocar como devolvido.

Imovel definir[] = new Imovel[20];
boolean alugado[] = new boolean[20];

public boolean Inserir(Imovel imovel) {
    for (int i = 0; i < definir.length; i++) {
        if (definir[i] == null) {
            this.definir[i] = imovel;
            this.alugado[i] = false;
            return true;
        }
    }
    return false;
}

private int localizarIndice(Imovel imovel) {}

public boolean Alugar(Imovel imovel) {
    int i = localizarIndice(imovel);
    // se encontrou indice e nao esta alugado
    if (i > -1 && this.alugado[i] == false) {
        this.alugado[i] = true;
        return true;
    } else {
        return false; // nao encontrou
    }
}

Se possível use o ArrayList em vez de array.