これは書くのが簡単な質問ではありません。それには多くの角度があります。私は、Java で非常に基本的な Trie を作成して、概念とその使用法を理解できるようにしようとしています。私はそれを正しく行っているかどうか完全にはわかりませんが、次の点に問題があります。
for(char c: value.toCharArray()){
TrieNode nodeChecker = rootNode.checkValue(c); //checks currentNode to see if characters are keys in HashMap
if(nodeChecker == null){
rootNode = rootNode.add(c); //if not, adds the character as a key, returns another TrieNode
}
基本的にここで行っているのは、「サンプル」という単語をツリーに追加することです。キーが文字で、値が別の HashMap である HashMap を作成します。(ネストされたハッシュマップです。これが適切なTrieであるかどうかは完全にはわかりませんが、気にしないでください)。
私が抱えている問題は、value.toCharArray (最後の文字 c が何であれ) の最終値で停止したいということです。最後の文字で停止しないと、ネストされた HashMap が追加され続け、実際に単語が挿入されることはありません。イテレータを作成して hasNext() 関数を使用しようとしましたが、何も機能しませんでした。
Iterator<Character> iter = value.toCharArray().iterator(); //"cannot invoke iterator on the array type char[]"
イテレータを配列に通すことができません。イテレータは配列と互換性がありませんか? リストまたは配列リストのみ?この場合、 hasNext() 機能を使用できるように、文字配列をリストに入れる簡単な方法はありますか?