Java 在字典中查找单词

Java 在字典中查找单词,java,dictionary,search,data-structures,Java,Dictionary,Search,Data Structures,我有一个小Java项目,在学校里制作一本字典 现在很简单,这里是Word类 public class Word implements Comparable<Word> { private String word_target; private String word_explain; /*Getter and setter methods.*/ @Override public boolean equals(Object o) {

我有一个小Java项目,在学校里制作一本字典

现在很简单,这里是Word类

public class Word implements Comparable<Word> {
    private String word_target; 
    private String word_explain;
    
    /*Getter and setter methods.*/

    @Override
    public boolean equals(Object o) {...}

    @Override
    public int hashCode() {...}

    @Override
    public int compareTo(Word otherWord) {
        return this.word_target.compareTo(otherWord.word_target);
    }
}
公共类Word实现了可比较的{
私有字符串单词_目标;
私有字符串单词_解释;
/*Getter和setter方法*/
@凌驾
公共布尔等于(对象o){…}
@凌驾
public int hashCode(){…}
@凌驾
public int compareTo(Word其他Word){
返回this.word\u target.compareTo(otherWord.word\u target);
}
}
还有字典课

public class Dictionary {
    protected static TreeSet<Word> words = new TreeSet<>();
}
公共类字典{
受保护的静态树集字=新树集();
}
我的问题是:如果我有一个字符串输入,它是一个单词,我必须找到它的含义,我如何使用一个用户定义对象的树集(在我的例子中,它是单词)来实现这一点?在我的例子中,什么是最好的搜索算法


我尝试使用TreeSet,因为它会自动对键盘上的输入数据进行排序,这在我显示字典中的所有单词时非常方便。

集合中有contains方法,请检查javadocs。在这个简单的场景中,可以尝试使用
TreeMap
而不是
TreeSet
?然后您可以使用
字符串作为键。我建议您使用
TreeMap
where
word\u target
作为键,
word\u explain
作为值,然后您可以使用word轻松地从地图中获取数据,并且数据也按单词排序。
TreeSet
已经使用了运行在O(log(n))中的最佳搜索算法@Omid.N问题是OP希望通过
word\u target
而不是通过word查找,所以如何使用contains方法?一种方法是创建Word实例,而不使用Word_解释和if hashcode,并通过它比较正确定义的搜索。但从某种意义上说,这将是非常糟糕的结构。