Jump to content

Carrega me as antenas respetivas ás salas :S


caxinaswin
 Share

Recommended Posts

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 (:

Edited by apocsantos
geshi
Link to comment
Share on other sites

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....

Edited by apocsantos
geshi
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.