Ir para conteúdo
Fórum Script Brasil
  • 0

Manipulação De Arquivo E Ordenação De Array


kandrade

Pergunta

galera.......tenho que entregar um trabalho na facu......

e to meio sem idéia de como resolvo o finalzinho do problema......

é assim:

um cadastro de clientes em um arquivo....

o cadastro possui 3 variáveis: Nome, Data de Nascimento e telefone.......

o arquivo fica assim:

cadastro.txt

kleber 21/02/1982 84025915

marcel 01/03/1996 72427517

.

.

.

tenho que gerar um outro arquivo, só que ordenado por data de nascimento!!!

bom......eu leio todo o conteúdo do arquivo e armazeno num array....

alguém tem idéia do que posso ordenar???

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Se o arquivo for enorme e exigir ordenação local, então fica mais complicado. *

Se não for o caso, crie um bean Cliente com os campos do arquivo que implemente a interface Comparable, como o Graymalkin disse. Depois de ler todas as linhas, instanciar os objetos e adicioná-los a uma lista (como ArrayList, ou Vector), use o método Collections.sort(List list) para ordenar. Feito isso, basta gravar um novo arquivo. wink.gif

Uma descrição do que o método compareTo() deve fazer é:

The compareTo() method compares the current instance with an element passed in as an argument. If the current instance comes before the argument in the ordering, a negative value is returned. If the current instance comes after, then a positive value is returned. Otherwise, zero is returned. It is not a requirement that a zero return value signifies equality of elements. A zero return value just signifies that two objects are ordered at the same position.

Se quiser ler mais,

http://java.sun.com/developer/onlineTraini...Collection.html

* Nesse caso, o ideal seria ordenar pelo MergeSort, utilizando a classe RandomAccessFile e um vetor de inteiros (para guardar o inicio dos intervalos). Seria assim: primeiro dividiríamos o arquivo em partes grandes que caibam na memória, e ordenaríamos cada uma delas, individualmente. Terminado o processo, reescreveriamos o arquivo inteiro, agora constituído de diversos blocos. Então o MergeSort entraria, unindo os pedaços para formar o arquivo inteiro, utilizando para isso, se necessário, um arquivo auxiliar. Parece complicado, mas não é tanto assim. A complexidade final é só O(n lg(n)) e o algoritmo economizaria memória pra caramba. Mas é como eu disse: só vale a pena se estivermos falando de arquivos grandes mesmo. biggrin.gif

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...