Я использую структуру данных TRIE для реализации словаря, меня немного смущает вопрос о том, какой тип данных мне следует использовать при реализации дочерних элементов TrieNode
Должен ли я использовать массив узлов длиной 26
class TrieNode
{
TrieNode[] children = new TrieNode[ALPHABET_SIZE];
// isEndOfWord is true if the node represents
// end of a word
boolean isEndOfWord;
TrieNode(){
isEndOfWord = false;
for (int i = 0; i < ALPHABET_SIZE; i++)
children[i] = null;
}
};
или я должен пойти с Hash Map реализация
class TrieNode{
char value;
boolean isEnd;
Map<Character,TrieNode> children;
public TrieNode(char value) {
this.value = value;
}
}
Какая из них более эффективна и будет потреблять меньше памяти?