Arraylist - adicionando Itens no mesmo indice

Pessoal estou com um problema basico
nao sei muito bem mexer com arraylist,
mas tenho um projeto grande a fazer e nao posso ficar mexendo com Array normais

oque eu quero é que o codCli esteja no mesmo indice dos outros dados
ex. no relatorio o usuario apenas digita o codigo Cliente e e já tem
os outros dados puxados.
tipo codigo = @23f
dados = nome:joao endereco:carmelias telefone:90198666 email:joao@joao.com.br

OBS: não conheco listas genericas ou linkadas, ou estrutura de dados
nao que eu seja preguicoso, mas tentei aprender e achei complicado, nao tenho muito tempo.

no lista.add ele esta adicionando no proximo termo.!

[code]
import java.util.ArrayList;
import java.util.Scanner;
/@JavaCode:Cliente/

public class Cliente implements Cadastrable{

Scanner s = new Scanner(System.in);

 private String codCli;  //@12f
private String nomeCli;
private String enderecoCli;
private String telefoneCli;
private String emailCli;

ArrayList <String> lista = new ArrayList<String>();
ArrayList <String> relatorioSimpCli = new ArrayList<String>();

public String entradaDados() {

    System.out.println("codCliente do Cliente");
        codCli = s.nextLine();
           lista.add(codCli);
    System.out.println("nome do Cliente");
        nomeCli = s.nextLine();
           lista.add(nomeCli);
    System.out.println("endereco do Cliente");
        enderecoCli = s.nextLine();
           lista.add(nomeCli);
    System.out.println("telefone do Cliente");
        telefoneCli = s.nextLine();
           lista.add(nomeCli);
    System.out.println("email do Cliente");
        emailCli = s.nextLine();
           lista.add(nomeCli);
    
	  /**
     * armazena um relatorio cada vez que é cadastrado algum cliente
     * @12f  joao    carmelias   90198666    joao@joao.com.br    |
     * @72f  manoel    sete setembro     8894156    manoel@joao.com.br    |
     **/
    relatorioSimpCli.add(codCli + nomeCli + enderecoCli + telefoneCli + emailCli);
	return relaSimplesCli;
	}

}//[/code]

Java não é orientado a String e sim a objetos.
Vc precisa criar uma classe que irá representar os atributos do cliente.
Vc seta os atributos objeto dessa classe e adiciona a referencia desse objeto.
Isso que vc quer fazer faz apenas com um ArrayList.
Isso não tem haver com generics. O generics serve para informar que aquela lista vai receber tal referencia, no seu caso irá receber apenas String.

talvez setar o valor toda vez que adicionar um item

STring temp = codCli + nomeCli + enderecoCli + telefoneCli + emailCli;
relatorioSimpCli.add(temp);

problemas certo - pq transformamos dados em uma string só

se o codigo for 37 e em algum registro ter
endereco numero 37
ele pega este registro erradamente

posso separar por substring até o primeiro espaço
e separar o primeiro no cod em tokens

sei lá.
tem algum exemplo de referenciar por objeto, guardar o indice
o que eu preciso enteder é acessar o indice ou local em um relatorio

Setar os dados de uma vez não irá transformar nada em String, cada tipo de dado ficará com seu tipo.
Se vc tiver um código 37 e um endereço 37 e vc precisar apagar, remover ou alterar, vc procurará pelo que?
Pelo codigo 37! Na mesma referencia que contém esse código, terá tudo referente a esse usuário, por ex: nome, tel, end, email, num, etc.
Então não tem como vc procurar pelo código 37 e o sistema te retornar pelo número 37, a não ser que vc esteja programando errado.
Não há necessidade de criar 2 ArrayList pra isso que vc quer. Com dá pra resolver brincando.

digitei
47
rodrigo
carmelias
9123-1234
email@email.com.br

System.out.print("a lista contem o nome rodrigo?"); System.out.print("contem "+relatorioSimpCli.contains("rodrigo")); //false System.out.print("contem "+lista.contains("rodrigo")); //true System.out.println("index of "+relatorioSimpCli.indexOf("rodrigo")); //-1 System.out.println("inde of "+lista.indexOf("rodrigo")); //true

desconfio(nao sei), mas parece que em relatorioSimpliCli ele transformou tudo em uma string só com indice 0
fazendo assim relatorioSimpCli.add(codCli + nomeCli + enderecoCli + telefoneCli + emailCli);
os dados nao ficaram separados como disse o colega

tenho set e gets para cada variaveis
Se eu procurar na lista() pelo codigo 37, do jeito que faço nao obtenho nenhum dado apenas este codigo 37
:roll:

conversando com o meu professor ele me disse pra criar um arraylist do tipo Cliente foi oque eu fiz
mais continuo sem entender, este código nao esta compilando

Obs: tenho uma classe Main, e uma classe Cliente que apenas contem os sets e gets usados aqui
não tem nenhum outro metodo de modificação.

[code]import java.util.ArrayList;
import java.util.Scanner;

public class CadastroCliente{
Scanner s = new Scanner(System.in);

private String codigo, nome, endereco, telefone, email;

ArrayList<Cliente> listaClientes = new ArrayList<Cliente>();

//identado para melhor visualizacao

void entradaDados() {
    System.out.println("codigo do cliente = ");
        codigo  = s.nextLine();

listaClientes.get(0).getCodCli(codigo);

    System.out.println("nome do cliente = ");
        nome = s.nextLine();

listaClientes.get(0).getNomeCli(nome);

    System.out.println("endereco do cliente = ");
        endereco = s.nextLine();

listaClientes.get(0).getEnderecoCli(endereco);

    System.out.println("telefone do cliente = ");
        telefone = s.nextLine();

listaClientes.get(0).getTelefoneCli(telefone);

    System.out.println("email do cliente = ");
        email = s.nextLine();

listaClientes.get(0).getEmailCli(email);
}

void geraRelatorioSimples() {
   System.out.println("mostrando os dados inseridos na posicao 0");
   System.out.println(listaClientes.get(0));
}

}//[/code]

neste caso ele diz que excedeu o espaço de indice 0
oque será que meu professor quis dizer, quando disse para criar um arraylist de clientes

pois é como não me ajudam rs :wink:
… eu estive me matando em cima deste problema, e acho que estou perto
da solução, no livro do Caelum obtive uma luz (sempre eles)

estou olhando as interfaces Collection com os Comparable
e este link me ajudou muito
http://www.guj.com.br/posts/list/54036.java#

quando anuviar posto o resultado.

Não seria melhor vc utilizar class “MAP” ? [caves],[valores] … Assim colocaria em chave o codigo do cliente e valor vc add o restante…