Busca em Lista

Pessoal,

Tenho um desafio que não estou conseguindo completar.

String string = “Alex, Recife, 01/01/2001\n”
+ “Maurício, Cabedelo, 02/01/2001\n”
+ “Guilherme, Recife, 02/01/2001\n”
+ “Rodrigo, Cabedelo, 01/01/2001\n”;

Tenho essa lista e preciso enumerar quem apareceu primeiro, por exemplo, a ocorrência Alex Felipe foi datado em 01/01/2001 na cidade de Recife, então preciso que ele aparece com o número Alex01, Guilherme aparecerá como Guilherme02, pois foi datado como 02/01/2001.

Minha questão é: Como percorrer essa lista de forma que ela identifique um nome e percorra novamente a mesma para saber qual a data que este foi datado.

Alguma ajuda?

Primeiro: isso não é uma lista, é uma String. Seria mais fácil de fazer o que você quer se já fosse uma lista, então essa seria a primeira coisa a se fazer.

Se você é obrigado a iniciar com a String, você pode gerar uma lista usando o método split da classe String, separando pela quebra de linha “\n”.

Depois, você precisa separa cada um dos campos. Pode usar split novamente em cada uma das linhas, separando por vírgula. Com isso, você terá uma lista com nome, cidade e data. Crie um objeto simples para armazenar esses atributos. Armazene esses objetos numa lista.

Nesse objeto, com a data, você pode criar um objeto Date. Por fim, pode ordenar a lista com esses objetos usando esse objeto Date na comparação.

Abraço.

Olá TerraSkilll,

Obrigado pelo seu comentário.
Realmente eu esqueci de dizer que isso era uma string. Eu já estou quebrando ela e armazenando em uma lista, o problema é que eu tenho que exibir o resultado na mesma ordem que me foi dada a string, ou seja, tenho que exibir a sequencia Alex, Maurício, Guilherme e Rodrigo.
Então se eu ordenar por data eu perco essa sequência entendeu?

Você alguma dica para resolver isto?

só complementando a resposta do terraSkill, agora que você ja tem uma lista, voce pode quebrar o valor de cada campo da lista em uma string nome e um atributo date por exemplo, assim que você ir quebrando os campos , vai adicionando eles num hashmap então assim Alex vai estar associado a 01/01/2001 e você não vai perder a referencia

  • crie um atributo para armazenar a ordem inicial;
  • ordene pela data;
  • armazene a ordem referente à data (assim você obtém o Alex01, Guilherme02 e etc);
  • ordene novamente pelo atributo que guarda a ordem inicial;

Abraço.