/ / Existe uma Trie em Java? [duplicado] - java, trie

Existe uma Trie em Java? [duplicado] - java, trie

Duplicar Possível:
Onde encontro uma implementação de mapa baseada em Trie padrão em Java?

Eu quero usar Trie em Java, existe uma implementação que eu possa usar? (Eu tentei procurar um, mas eu não encontrei).

Respostas:

41 para resposta № 1

Não há estrutura de dados trie nas principais bibliotecas Java.

Isso pode ocorrer porque as tentativas geralmente são projetadas para armazenar cadeias de caracteres, enquanto as estruturas de dados Java são mais gerais, geralmente mantendo qualquer Object (definindo igualdade e uma operação de hash), embora às vezes sejam limitados a Comparable objetos (definindo uma ordem). Não há abstração comum para "uma sequência de símbolos", embora CharSequence é adequado para seqüências de caracteres, e eu suponho que você poderia fazer algo com Iterable para outros tipos de símbolos.

Aqui está outro ponto a considerar: Ao tentar implementar um trie convencional em Java, você é rapidamente confrontado com o fato de que o Java suporta Unicode. Para ter qualquer tipo de eficiência de espaço, você deve restringir as cadeias de caracteres a um subconjunto de símbolos ou abandonar a abordagem convencional de armazenar nós filhos em uma matriz indexada por símbolo. Essa pode ser outra razão pela qual as tentativas não são consideradas de propósito geral o suficiente para inclusão na biblioteca principal, e algo que deve ser observado se você implementar a sua própria biblioteca ou usar uma biblioteca de terceiros.