Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

caxinaswin

Carrega me as antenas respetivas ás salas :S

Mensagens Recomendadas

caxinaswin    0
caxinaswin

Muito boa tarde, tenho um problema na minha aplicação que vou tentar explicar:

tenho 3 classes que estão interligadas(Bloco,Sala,Antena) 1 bloco tem um ArrayList de salas e 1 sala tem um ArrayList de Antenas.

Aqui estão as classes!!

//classes

public class Bloco {

private String nomeBloco;
private ArrayList<Sala> salas = new ArrayList<Sala>();
public Bloco(String nomeBloco, ArrayList<Sala> salas) {
super();
this.nomeBloco = nomeBloco;
this.salas = salas;
}


public Bloco(String nomeBloco) {
super();
this.nomeBloco = nomeBloco;
}


public String getNomeBloco() {
return nomeBloco;
}
public void setNomeBloco(String nomeBloco) {
this.nomeBloco = nomeBloco;
}
public ArrayList<Sala> getSalas() {
return salas;
}
public void setSalas(ArrayList<Sala> salas) {
this.salas = salas;
}



public class Sala {

private String numeroSala;
public static ArrayList<Antena> antenas = new ArrayList<Antena>();

public Sala(String numeroSala) {
super();
this.numeroSala = numeroSala;
}

public String getNumeroSala() {
return numeroSala;
}
public void setNumeroSala(String numeroSala) {
this.numeroSala = numeroSala;
}

public static ArrayList<Antena> getAntenas() {
return antenas;
}

public static void setAntenas(ArrayList<Antena> antenas) {
Sala.antenas = antenas;
}




}



public class Antena {

private int numeroAntena;
private boolean estado;

public Antena(int numeroAntena,boolean estado) {
this.numeroAntena = numeroAntena;
this.estado = estado;
}

public Antena()
{

}


public int getNumeroAntena() {
return numeroAntena;
}

public void setNumeroAntena(int numeroAntena) {
this.numeroAntena = numeroAntena;
}


public boolean isEstado() {
return estado;
}

public void setEstado(boolean estado) {
this.estado = estado;
}


}

Basicamente o que eu pretendo é adicionar uma Antena, tenho aqui o código respetivo á adicao da Antena, mas o problema é que ele em vez de me adicionar 1 antena adiciona me as antenas respetivas ás salas que eu tenho ou seja se tiver 4 salas tenho 4 Antenas, eu sei que deve ser algum problema com o loop mas já andei ás voltas e não consigo encontrar o problema vou postar aqui o que eu fiz:

/**
* Guarda dados da Antena no ArrayList
* @param nomeBloco nome do Bloco a guardar
* @param numeroSala numero da sala a guardar
* @param estado estado a guardar
*/
public static void guardarAntena(String nomeBloco,String numeroSala,boolean estado)
{
int numero = 1;

for(int i = 0;i<blocos.size();i++)
{
Bloco bloco = blocos.get(i);
ArrayList<Sala> salas = bloco.getSalas();
if(nomeBloco.equals(bloco.getNomeBloco()))
{
for(int j = 0;j<salas.size();j++)
{
Sala sala = salas.get(j);
if((sala.getNumeroSala().equals(numeroSala)))
{
 sala.getAntenas().add(new Antena(numero,estado));
}
}
}
}
}

Espero que me possam ajudar

Obrigado (:

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
siul72    2
siul72

Boas, antes demais, para que seja mais claro, deves alterar os ciclos for por for each ou itilizar um iterator.

Normalmente prefiro o for each, exemplo:

for(String object: list){
System.out.println(object)
}

Aqui segue uma ajuda:

public static void guardarAntena(String nomeBloco,String numeroSala,boolean estado){
int numero = 1;

for(Bloco bloco : blocos){

 if(nomeBloco.equals(bloco.getNomeBloco())){

	 ArrayList<Sala> salas = bloco.getSalas();
	 for(Sala sala : salas){
		 if((sala.getNumeroSala().equals(numeroSala))){
			 sala.getAntenas().add(new Antena(numero,estado));
			}
	 }
 }
}
}

Finalmente se queres que as antenas tenham um numero unico, nao podes utilizar o valor int numero = 1; hardcoded....

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.