Olá galera, tudo bem?
Bom seguinte, estou com um problema aqui que preciso implementar uma estrutura de dados em arvore, parecido com que ocorre no sistemas de diretorio do Unix e Windows ou com tabelas com auto-relacionamento em banco de dados.
Imaginem a estrutura de diretórios do Windows eu tenho o diretório C:\Arquivos e tbm tenho o C:\Documentos e dentro do primeiro eu tenho os seguintes diretórios C:\Arquivos\Fotos, C:\Arquivos\Programas e dentro do ultimo eu tenho o C:\Arquivos\Programas\Instaladores
Ou imaginando a ideia do auto-relacionamento em um banco de dados relacional tenho uma tabela chamada Colaborador com os seguintes campos:
Codigo (int PK)
Nome (String)
Chefe (int FK)
sendo que em um auto relacionamento eu possuo os códigos 1, 2, 11, 12 e 111, sendo que o 11 e 12 são dependentes do 1 e o 111 é dependente do 11
Preciso de uma estrutura de dados em Java em que eu possa implementar esse tipo de regra (chaves únicas com ou sem dependência de uma em forma de arvore).
Estudando um pouco o assunto verifiquei que existe a classe TreeMap da Collections Map, ela utiliza uma chave unica para armazenar cada elemento e que sua ordenação é por arvore (já é uma parte do que preciso). Verifiquei também que por default ela ordena as chaves de maneira crescente (1,2,3,4,5…) mas que você pode implementar regras para mudar o tipo de ordenação.
Minha dúvida é, como posso montar um algoritmo para que ela ordene sempre as chaves pai e suas respectivas filhas até as folhas? por exemplo:
1,11,111,12,2,3…
Desde já agradeço a ajuda