Lista de Objetos

4 respostas
lucas_carvalho100

E ai pessoal blz?

Estou com um problema em lista de objetos, acredito que é simples, lá vai...

Imagine que estamos usando o padrão DAO, e temos a classe modelo e a classe DAO, na classe DAO onde fica toda a persistência crio um método listAll que me rétorna uma lista de objetos. Ai vem o problema, quando eu faço o loop e dentro do loop eu dou o new no objeto ele funciona normal, adiciona todos os objetos normalmente dentro da lista, no entanto quando eu dou o new fora da lista, toda vez que eu adiciona que eu atualizo o registro ele muda o valor do mesmo dentro da lista, ou seja a lista fica igual para todos os objetos. Vou dar um exemplo de código bem básico...

public class Teste {

	private int teste = 0;

	private String nome;

	public int getTeste() {
		return teste;
	}

	public void setTeste(int teste) {
		this.teste = teste;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public void clear(){
		
		setNome(null);
		setTeste(0);
		
	}

}
import java.util.ArrayList;
import java.util.List;


public class TesteDAO {
	
	public List<Teste> ListAll(){
		
		
		List<Teste> lista = new ArrayList<Teste>();
		
		
		
		for (int i = 1; i < 4 ; i++) {
			
			// Imaginem que aqui ele conecta no banco de dados e buca os registros....
			Teste teste = new Teste();
			teste.setNome("teste " + i);
			teste.setTeste(i);
			lista.add(teste);
			
		}
		
		return lista;
	}

}

Agora o problema é o seguinte se toda hora dentro do loop eu crio um novo objeto, imagine um sql por exemplo q retorne 1 milhão de linhas ou mais, haja memória para suportar toda hora a criação de um novo objeto,

Bem alguém tem alguma ideia de como posso melhorar esse código?

Aguardo retorno.

Vlw pessoal, abraços...

4 Respostas

g4j

É assim mesmo que funciona, você tem que instanciar dentro do loop. 1 milhão de objetos não vai estourar memória não cara…

lucas_carvalho100

Eu fiquei em duvida, será que almentando a lista ele não vai ficando mais lento?
Então estou fazendo correto?

g4j

lucas_carvalho100:
Eu fiquei em duvida, será que almentando a lista ele não vai ficando mais lento?
Então estou fazendo correto?

Está sim!

lucas_carvalho100

Vlw pela ajuda.
Abraços…

Criado 31 de maio de 2010
Ultima resposta 31 de mai. de 2010
Respostas 4
Participantes 2