kandrade Postado Novembro 17, 2005 Denunciar Share Postado Novembro 17, 2005 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.txtkleber 21/02/1982 84025915marcel 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??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 17, 2005 Denunciar Share Postado Novembro 17, 2005 Crie objetos DateTime a partir das datas e utilize seus métodos compareTo para realizar uma ordenação bolha (bubble-sort).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iSoron Postado Novembro 18, 2005 Denunciar Share Postado Novembro 18, 2005 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. 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. []'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Novembro 29, 2005 Autor Denunciar Share Postado Novembro 29, 2005 valeu pela ajuda iSoron e Graymalkin!!!!resolvido!!!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
kandrade
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
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
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.