Criei um programa com uma List, que tem seus getters setters e tudo mais, nesse codigo para setar novas linhas dessa lista, tem-se o seguinte codigo:
public void CriarLista (int mansos,int putos){
blobsL = new ArrayList();
numeros = new ArrayList();
System.out.println("Criação da primeira lista: ");
for(int i=0;i<(mansos+putos);i++){
numeros.add(i);
}
int pop = mansos+putos;
for(int i=0;i<pop;i++){
if(mansos!=0){
f = new blobsDAO(); //SEMPRE INSTANCIE UM NOVO OBJETO SEU JUMENTO
f.setId(numeros.get(i));
f.setTipo("MANSO");
f.setPosicao(null);
blobsL.add(f);
System.out.println(f);
mansos = mansos - 1;
System.out.println("MANSO "+i+" ADICIONADO");
}
else if(putos!=0){
f = new blobsDAO();
f.setId(numeros.get(i));
f.setTipo("PUTO");
f.setPosicao(null);
blobsL.add(f);
putos = putos - 1;
System.out.println("PUTO "+i+" ADICIONADO");
}
}
} //FIM FUNÇÃO CRIAR LISTA
Funciona muito bem a questão de setar determinado Id,Tipo e posição desses objetos da List<>, tal como adicionar novos, porém quando tento remover alguns desses objetos acontece um bug muito estranho.
Criei uma função em caso do objeto possuir o valor de getPosição==null, nesse caso o objeto sera deletado, entretanto aparece um bug muito chato em que, ele deleta a primeira posição detectada como nulo, e as demais ele simplismente ignora.
Codigo abaixo:
public void EliminarBlob(){
//ELIMINAR AQUELES SEM COMIDA
System.out.println("Tamanho da lista: "+blobsL.size());
for (int i = 0; i < blobsL.size(); i++) {
if(blobsL.get(i).getPosicao()== null){
System.out.println("Objeto a ser eliminado: "+blobsL.get(i).getId()+" - "+blobsL.get(i).getPosicao());
blobsL.remove(f);
}else{
System.out.println("Objeto sobrevivente: "+blobsL.get(i).getId());
}
}
}
