用于选择对象的正确数据结构

时间:2013-07-10 12:55:33

标签: java performance data-structures

我是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.
}
  1. 现在进行测试,乍一看ArrayList似乎是最合适的(选择一个随机数,然后选择要测试的对象)。但是,如果我还要考虑rightAnswersInARow并更频繁地询问数字较低的词汇,该怎么办?我的方法是计算每个值的对象数,给每个值一个间隔(例如rightAnswersInARow = 0的间隔将被因子3夸大)然后从那里随机选择。 但即使我每次都经过ArrayList,得到rightAnswersInARow并确定间隔......我如何将计算出的数字映射到正确的索引,因为元素没有排序?那么TreeSet会更合适吗?

  2. 要搜索两种语言的条目,甚至可能会添加包含建议字词的下拉列表(例如在Google的搜索中),我需要快速找到字符串(HashMap?)。或者可以通过2+(每种语言一个)TreeSet来到达以这些字母开头的第一个元素,然后从那里选择接下来的几个元素?但这意味着搜索总会提出相同的词语,而忽略了搜索最多的词语。

  3. 你会建议什么?每个值对都有HashMap并手动实现关系数据库之类的东西吗?

    提前谢谢! :)

0 个答案:

没有答案