Java 在一组枚举对象中存储数据

Java 在一组枚举对象中存储数据,java,Java,我正在做一个关于创建交互式词典的课堂项目。搜索一个单词,输出的是单词、词性和定义 看起来像这样 搜索:Reddit Reddit[名词]:一个充满迷因的地方 我一直坚持的一点是,我们必须将原始数据存储在一组枚举对象中。“每个关键字、每个词类和每个定义必须存储在单独的数据字段中” 这是否意味着我必须在同一个类中存储enum中的所有关键字、enum中的所有词性以及单独enum中的所有定义?“单独的数据字段”是什么意思。这里有一种方法: import java.util.HashMap; publi

我正在做一个关于创建交互式词典的课堂项目。搜索一个单词,输出的是单词、词性和定义

看起来像这样

搜索:Reddit Reddit[名词]:一个充满迷因的地方

我一直坚持的一点是,我们必须将原始数据存储在一组枚举对象中。“每个关键字、每个词类和每个定义必须存储在单独的数据字段中”


这是否意味着我必须在同一个类中存储enum中的所有关键字、enum中的所有词性以及单独enum中的所有定义?“单独的数据字段”是什么意思。这里有一种方法:

import java.util.HashMap;

public class Main {

    HashMap<String, Word> dictionary = new HashMap<String, Word>();

}

class Word{

    private String word;
    private WordType type;
    private String definition;

    public Word(String word, WordType type, String definition) {
        this.setWord(word);
        this.setType(type);
        this.setDefinition(definition);
    }

    public String getDefinition() {
        return definition;
    }

    public void setDefinition(String definition) {
        this.definition = definition;
    }

    public WordType getType() {
        return type;
    }

    public void setType(WordType type) {
        this.type = type;
    }

    public String getWord() {
        return word;
    }

    public void setWord(String word) {
        this.word = word;
    }

}

enum WordType{

    Noun, 
    Verb,
    etc;

}
import java.util.HashMap;
公共班机{
HashMap dictionary=新建HashMap();
}
类词{
私有字符串字;
私有字类型;
私有字符串定义;
公共字(字符串字、字类型、字符串定义){
这个。设置字(word);
这个.setType(type);
本.集定义(定义);
}
公共字符串getDefinition(){
返回定义;
}
公共void集合定义(字符串定义){
这个定义=定义;
}
公共字类型getType(){
返回类型;
}
公共void集合类型(WordType类型){
this.type=type;
}
公共字符串getWord(){
返回词;
}
公共无效设置字(字符串字){
这个单词=单词;
}
}
枚举字型{
名词,
动词,
等
}

这是在字典项目中实现“单词”的一种方法。在Word类和一些文件IO中使用
toString()
重写,您应该可以继续使用。

唯一应该存储为枚举的是不变的部分--词类:名词、动词、副词。。。其余的都不应该是enum。关键字(如Reddit)不应该是枚举,因为它是数据,不是常量且可能会更改的数据。枚举是一个类。因此,它可以有一个构造函数和字段。这是一个可能有意义的可能性。但我想只有你的老师才能澄清这项任务。我真正搞不懂的是“枚举集”和“关键字”在一起-好吧:教师。通过“单独的数据字段”,“他”意味着(不同类型的)对象变量“;)。。。编译(java)枚举后,它们的计数和所有属性都是固定的。当然,这可能很奇怪——至少有一个遥远的机会来填满“我们必须将原始数据存储在一组枚举对象中”。没什么意义。首先谢谢你的帮助!!我想指出,是的,我必须将原始数据存储在一组enum对象中,并再次强调,我必须将每个关键字、每个词类和每个定义存储在单独的数据字段中。我必须使用数据结构来存储字典的数据。这就是我所困惑的。没问题!我想我不太明白这个问题。单词、词性和定义都必须是枚举吗?如果允许使用字符串,数据的存储将不会很困难。在我的例子中,我使用了一个HashMap,您可以在固定时间内访问它,将我的Word对象绑定到它们对应的字符串Word。有四个标准:数据源、数据结构、数据加载和用户界面。因此,当程序从用户处获取输入时,程序将搜索字典数据,而不是数据源。因此,对于数据源,将数据存储在一组enum对象中(这让我感到困惑)。存储在数据字段中的每个关键字、每个词性和每个定义。它还说“不要把它们组合起来,比如把三个部分放在一根绳子里”。我和你一样困惑,我的朋友。从我所读到的内容来看,似乎应该存储单词,这是一个枚举,并使用该枚举获取数据。这是否符合HashMap字典的标准?我想你已经有了这本字典里应该有的单词了吧?我不认为有一种方法可以在运行时在Java中解析枚举而不进行反射(甚至可能不进行反射)。好吧,到目前为止,我已经了解了其中的一些细节。我的最后一个问题是,当作业说“当我们的程序启动时,它将数据源中的所有原始数据加载到我们的字典数据结构中。数据加载必须在我们的程序开始与用户交互之前完成”时,这意味着什么