java - 在java中搜索tries

标签 java dictionary trie

嗨,我有一个项目,我需要通过尝试来实现字典...但现在我无法实现搜索方法...我的代码在这里

public class TriesNode {
String value;
ArrayList<TriesNode> children = new ArrayList<TriesNode>();


String findNode(TriesNode root , String key ){
    for (int i=0 ; i<key.length() ; ++i){
        char temp= key.charAt(i);
        if ( !(root.children.equals(temp)))
            return null;
        else
            root = root.children.value.equals(temp);
    }
}

在这段代码中,我的 else 语句有错误!!!! 我想用其中一个子项替换根,它的值类似于 key(temp) 的第一个字符,但我不能在“else 语句”中执行此操作......以及为什么我无法访问该值 children ??

最佳答案

好吧,root是TriesNode类型,但是root.children不是同一类型,这就是问题所在。您不能分配不同类型的值。您必须声明 root.children 类型的变量,然后分配该值。要将 root.children 的值直接分配给 root,您必须执行以下操作:

root.Add(root.children)

或多或少...

关于java - 在java中搜索tries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5726705/

相关文章:

java - 在 Java 中实现 Trie

Java 静态类成员和 Scala 的互操作性

Java日期长值插入后改变,选择查询

mysql - 如何一次将多个条目插入 MySQL 数据库

python - 根据 Python 中的另一个列表对字典列表进行排序

scala - 从函数返回的映射中获取值,在 Scala 中使用隐式

C - 打印特定的 Trie 段

java - 我可以在 .war 文件之外有一个可修改的 Java 文件吗? (但仍然连接到 .war 项目)

javascript - 如何在客户端使用 React 的 BrowserRouter,在服务端使用 Java REST API (Spring Boot)?

c++ - 为什么 C++ 映射不作为尝试实现?