Dúvida em programa java!

Pessoal estou com um problema. Tenho que ordenar um arquivo com 500.000 registros, mas esse arquivo não cabe na memória, daí preciso dividi-lo em 5 unidades, cada uma com 100.000 registros, pois é o máximo que cabe na memória. Até aí tudo bem, consegui dividir em 5 unidades com 100.000 registros cada. Mas agora eu preciso ordenar cada unidade dessa, sendo que os registros possuem 5 campos cada e é necessário ordenar pelo 4º campo, que é uma string. Depois de ordenar cada unidade com 100.000 registros cada, tenho que mesclar, usar o mergeSort nessas 5 unidades para formar um único arquivo ordenado com os 500.000 registros. Detalhe, o campo que preciso ordenar em cada unidade é o 4º e é uma string. Gostaria muito da ajuda de vocês. Qualquer coisa posso postar o código que fiz até dividir nas 5 unidades. Desde já agradeço a atenção de todos. Ah, lembrando que tem que ser em java :slight_smile:

Cria um método de ordenação em uma coleção como Collection ou List. Dai é só ler o arquivo e passar todo ele para dentro da coleção, a própria coleção ordena e então você salva novamente o arquivo a partir dessa coleção.
Se não sabes como ordenar uma lista, pesquise no google pela interface java.util.Comparator.
Talvez na própria busca do fórum você encontre algo.

Cara não adianta ficar criando varios topicos com o mesmo conteúdo, acho que não pode fazer isto aqui no GUJ.

Que estranho, como você está lendo esse arquivo?

500 mil registros não são tanta coisa assim hoje em dia, a não ser que você tenha pouca memória, mas em todo caso posta aqui seu algoritmo e a gente vê se consegue te ajudar.

E aí Digao, na verdade é apenas uma simulação, meu professor passou essa exercício, e é pra gente fazer simulando que a memória só cabe 100.000 registros. Minha dúvida maior é como eu ordenado as 5 unidades separadamente. Eu criei 5 vetores com todas os 100.000 registros de cada unidade, mas tenho que ordenar pelo 4º campo. Quero usar o quickSort em cada vetor, só que os vetores estarão cada linha com 5 campos e tenho que ordena-los pelo quarto campo.