ArrayList com Objeto

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

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”

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:

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

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

clientes.add(c1);

...

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

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

o m0ska posto um exemplo usando arraylist

[quote][code]List clientes = new ArrayList();

Cliente c1 = new Cliente();
c1.setNome(“nome1”);

clientes.add(c1); [/code]author: m0ska[/quote]

o m0ska posto um exemplo usando arraylist

[quote][code]List clientes = new ArrayList();

Cliente c1 = new Cliente();
c1.setNome(“nome1”);

clientes.add(c1); [/code]author: m0ska[/quote]

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…

opa nao querendo ser chato

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

:smiley:

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.

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

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.