ArrayList com Objeto

12 respostas
cyrofranco

Tenho a seguinte classe bean

public class Cliente{

String nome;
String email;

//e seus metodos set e get
}

gostaria de instanciar essa classe Cliente como um Vetor, sem mexer na minha classe bean, é possivel???

por exemplo:

public void static main(String args[]){
Cliente[] cli=new Cliente[10];

cli[0].setNome(beto);

cli[1].setNome(Joao);

cli[2].setNome(roberval);

cli[3].setNome(malabi);

for(int i=0, i==cli.lenght;i++){

System.out.println(“Nome:” +cli[i].getNome());
}

}

só que aqui quando faço isso ele retorna null point exception…
Então procurei algo sobre ArrayList mas nao achei nenhuma slução possivel…
Alguém pode me ajudar com a solução ou em Arraylist ou usando apenas o vetor???

Att Cyro franco

12 Respostas

Guilherme_Gomes

ok, vamos la:

  1. Use as tags de código [ code ] e [ /code ] por favor, para facilitar a vida de quem le!

  2. O seu erro é que voce está confundindo, pois voce inicializou o " Cliente[] cli=new Cliente[10]; " mas não as posições, ou seja, quando voce usa cli[X] ele devolve null, e null não tem a função setNome(): “NullPointerException”

Leandro_Carvalho
public void static main(String args[]){
Cliente[] cli=new Cliente[10];

for(int i=0, i < cli.lenght;i++)
  cli[i] = new Cliente();

cli[0].setNome("beto");
cli[1].setNome("Joao");
cli[2].setNome("roberval");
cli[3].setNome("malabi");

for(int i=0, i < cli.lenght;i++){

System.out.println("Nome:" +cli[i].getNome());
}

}

Estude melhor Arrays… :wink:

m0ska
List<Cliente> clientes = new ArrayList<Cliente>();

Cliente c1 = new Cliente();
c1.setNome("nome1");

clientes.add(c1);

...
cyrofranco

foi mal pelas tags ai cara…

desculpa mas nao entendi direito…
entendi que nao funciona… mas existe solução pra isso???

eu teria que inicializar o objeto??? ou

simplesmente nao vai funcionara assim??

cyrofranco

Valeu leandro brigadao cara!!! mas assim vai ficar meio escabroso, instanciar varios objetos vai ficar feião… usando array list como seria???

skylinedu

o m0ska posto um exemplo usando arraylist

List<Cliente> clientes = new ArrayList<Cliente>();  
   
Cliente c1 = new Cliente();  
c1.setNome("nome1");  
   
clientes.add(c1);
author: m0ska
skylinedu

o m0ska posto um exemplo usando arraylist

List<Cliente> clientes = new ArrayList<Cliente>();  
   
Cliente c1 = new Cliente();  
c1.setNome("nome1");  
   
clientes.add(c1);
author: m0ska
cyrofranco

Entendi… mas nesse caso nao será muito util eu usar o array list certo… seria interessante caso eu tivesse:

List<Cliente> clientes = newArrayList<Cliente>();     
     
Cliente c1 = newCliente();     
c1.setNome("nome1");     
c1.setEmail("nome1");     
c1.setTelefone("nome1"); 
c1.setEndereco("nome1");         
     
clientes.add(c1);

correto???

na verdade eu quero usar esse vetor, para passar valores de um select * from de um servlet para uma jsp…

LPJava

opa nao querendo ser chato

dar uma lida aqui: http://www.guj.com.br/posts/list/50115.java

:smiley:

J

Não sei se entendi direito… veja se é isso que vc precisa:

List<Cliente> cliente = new ArrayList<Cliente>();
String SQL;

SQL = "SELECT * FROM cliente";

ResultSet rsCliente = st.executeQuery(SQL);

while(rsCliente.next()){
   Cliente cli = new Cliente();

   cli.setNome(rs.getString("nome");
   cli.setEndereco(rs.getString("endereco");
   cli.setTelefone(rs.getString("telefone");

   cliente.add(cli);
}

Assim vc vai ter um array de objeto com os dados da sua consulta.

mariofcc

ve se isso ajuda…
vc tem que criar os objetos Cliente antes…

public static void main(String[] args) {
		// TODO Auto-generated method stub
		 Cliente[] vetCliente = new Cliente[10];
		 
		 for (int i = 0; i < vetCliente.length; i++) {
			 vetCliente[i] = new Cliente();		//criado objeto CLiente
		 }
		 
		 vetCliente[0].setNome("nome");
		 vetCliente[1].setNome("nome1");
		 vetCliente[2].setNome("nome2");
		 vetCliente[3].setNome("nome3");
		 vetCliente[4].setNome("nome4");
		 vetCliente[5].setNome("nom5");
		 vetCliente[6].setNome("roberval");
		 vetCliente[7].setNome("malabi");
		 vetCliente[8].setNome("beto");
		 vetCliente[9].setNome("Joao");
		 		 
		 for(int i=0; i< vetCliente.length; i++){
			 System.out.println("Nome:" +vetCliente[i].getNome()); 
		 }

isso ai e com List…em baixo tem com ArrayList e mais facil e vc cria somente os objetos de cliente que vc vai usa.

public static void main(String[] args)
	{
		ArrayList list = new ArrayList();
	
		for(int i=0;i<5;i++)
		{
			Cliente cliente = new Cliente();
			cliente.setNome("nome"+i);
			list.add(cliente);
		}
		
		Iterator iterator = list.iterator();
		//percorre a Lista
		while(iterator.hasNext())
		{
			Cliente cli = (Cliente) iterator.next();
			System.out.println(cli.getNome());
		}
		
		
	}

espero que ajude falo

cyrofranco

Valeu Mario, foi muito util o seu código… mas o Jobiz foi perfeito… eu nao estava entendendo direito como seria util uma List… entendi o funcionamento, mas nao tinha entendido ainda qual seria a grande vantagem de se usa-la ao invés de um vetor simples, minha duvida surgiu pois eu ja tenho uma estrutura montada, com a classe Cliente e os metodos set e get prontos, e eu nao queria alterar a estrutura da minha classe… usando uma list eu tenho a vantagem de não definir o tamanho do meu vetor…
Acho que esse topico vai ser muito util para as pessoas que tem duvidas sobre uso de List e Vetores…

Grato Cyro.

Criado 18 de setembro de 2007
Ultima resposta 18 de set. de 2007
Respostas 12
Participantes 8