我是 Java 新手,作为一个学习项目,我想编写一个小词汇应用程序,以便用户可以测试自己,也可以搜索条目。但是,我很难为此找到合适的数据结构,即使在过去几天搜索它之后,我仍然不知所措。
这是我对词汇对象的想法:
import java.io.*;
class Vocab implements Serializable {
String lang1;
String lang2;
int rightAnswersInARow; // to influence what to ask during testing
int numberOfTimesSearched; // to influence search suggestions
// ... plus the appropriate setter and getter methods.
}
现在进行测试,乍一看
ArrayList
似乎是最合适的(选择一个随机数,然后选择要测试的对象)。但是,如果我还想rightAnswersInARow
更频繁地考虑并询问数量较少的词汇怎么办?我的方法是计算每个值的对象数量,给每个值一个区间(例如,区间rightAnswersInARow = 0
将被因子 3 夸大),然后从那里随机选择。但是,即使我ArrayList
每次都经过,获取rightAnswersInARow
并确定间隔......由于元素未排序,我将如何将计算出的数字映射到正确的索引?那么aTreeSet
会更合适吗?要搜索两种语言的条目,甚至可能添加带有建议单词的下拉列表(如在 Google 的搜索中),我需要快速找到字符串(
HashMap
?)。或者可能通过 2+(每种语言一个)TreeSet
到达以这些字母开头的第一个元素,然后从那里选择接下来的几个元素?但这意味着搜索总是会建议相同的单词,而忽略搜索最多的单词。
你有什么建议?每个值对都有一个HashMap
并手动实现关系数据库之类的东西?
先感谢您!:)