ArrayList

[color=blue]no case 1 ele pega os dados e armasena na List no case 3 ele mostra os dados , mas msm eu setando outra posição ele so mostra a ultima coletada
help pls
[/color]

[code]package com.br.exerciciosEvolucao;

import java.util.ArrayList;

import javax.swing.JOptionPane;

public class TestaCadastroCliente {

public static void main(String[] args) {
	String opcao;
	int opcao1;
	int indice;
	
	ArrayList Lista = new ArrayList();
	
	DadosCliente d = new DadosCliente();
	
	do{
	
		JOptionPane.showMessageDialog(null,"1- Cadastrar cliente\n2- Modificar dados do cliente\n3- Visualizar dados do cliente" +
				"\n4- Excluir dados do cliente\n5- sair do sistema" );
		
		opcao = JOptionPane.showInputDialog("Eentre com a opção");
		
		
		opcao1 = Integer.parseInt(opcao);
		
		switch (opcao1){
		
		case 1:
			
			Lista.add( d.dadosDosClientes());//adiciono os dados coletados a Lista

			
			break;
		case 2:
			//aqui é para modificar o os dados 
			
	   
			
			}
			
		case 3:
			
			//ver os dados do cliente mas quando eu pego a posição ele não funciona , ele sempre mostra o ultimo dado coletado msm
			//colocando uma posição INT no List.get para ele vizualizar e so mostra o ultimo coletado
			String x = JOptionPane.showInputDialog("Entre com o codigo do cliente");
			 indice = Integer.parseInt(x);

				
			JOptionPane.showMessageDialog(null,Lista.get(indice));
			break;
		case 4:
			
			String x1 = JOptionPane.showInputDialog("Entre com o codigo do cliente a ser excluido do sistema");
			int indice1 = Integer.parseInt(x1);
			

			Lista.remove(indice1);
			
			break;
			
		case 5:
			JOptionPane.showMessageDialog(null,"Saindo do sistema");
			break;
			
		default :
			JOptionPane.showMessageDialog(null,"Opção invalida , entre com uma opção valida");
		    break;
		
		}
		
		
		
		
		
		
	}while(opcao1 != 5);
	

}

}
[/code]

Experimentou retornar toda sua ArrayList, ao invés de um indice específico, só pra testar.

sim

botei nomes joao e pedro e retorno duas vesez pedro

for (int i = 0; i < Lista.size(); i++) JOptionPane.showMessageDialog (null,Lista.get(i));

Se nessa linha vc tiver adicionando uma lista dentro de outra…

Lista.add( d.dadosDosClientes());//adiciono os dados coletados a Lista

…use addAll…
OBS: Arrume uma palavra da sua descrição, por mais que seja forum de tecnologia uma boa escrita é imprescindível.

public  static void main(String[] args) {  
	String opcao;
	int opcao1;
	int indice;

	List<DadosCliente> Lista = new ArrayList<DadosCliente>();
	DadosCliente d = new DadosCliente();

	do{
		JOptionPane.showMessageDialog(null,"1- Cadastrar cliente\n" +
	  							      "2- Modificar dados do cliente\n" +
								      "3- Visualizar dados do cliente\n" +
								      "4- Excluir dados do cliente\n" +
								      "5- sair do sistema" );

		opcao = JOptionPane.showInputDialog("Eentre com a opção");
		opcao1 = Integer.parseInt(opcao);

		switch (opcao1){
			case 1:
				Lista.add( d.dadosDosClientes());  
				break;
			case 2:
				break;
			case 3:
				String x = JOptionPane.showInputDialog("Entre com o codigo do cliente");
				indice = Integer.parseInt(x);
				JOptionPane.showMessageDialog(null,Lista.get(indice));
				break;
			case 4:
				String x1 = JOptionPane.showInputDialog("Entre com o codigo do cliente a ser excluido do sistema");
				int indice1 = Integer.parseInt(x1);

				Lista.remove(indice1);
				break;
			case 5:
				JOptionPane.showMessageDialog(null,"Saindo do sistema");
				break;
			default:
				JOptionPane.showMessageDialog(null,"Opção invalida , entre com uma opção valida");
				break;
		}
	}while(opcao1 != 5);  
}

Não sei o que o construtor da classe DadosCliente faz então não sei o que retorna d.dadosDosClientes(), dois retornos são possiveis pra que isso seja adicionado na lista, um array e uma lista. E, por consequência do retorno ser uma coleção, tem que ser adicionado com addAll ou fazer um for interativo que vá adicionando um por um os objetos de retorno na nova lista.
Post todo seu código deste exemplo se não conseguir solucionar o problema.