我现在正在开发一个英语单词应用程序,我希望每个单词都有不同的 int id,因为所有单词都彼此不同,我认为它们可以很容易地分配一个整数(或 long?)。
我不想按照字母顺序连续给他们 ID。我认为可能有一个现有的算法可以满足这个要求,我不想发明自己的轮子,所以,请帮助我。
我更喜欢整数 id,因为我希望结构紧凑且足够小以通过 Internet 传输,因为一个单词列表可能包含成百上千的单词。
想象一下我的数据结构如下:
struct word {
int wordId;
byte familiarity;
}
// I prefer the mapping like this
apple -> 0x1, 0x4
app -> 0x2E, 0x2
ape -> 0xEA, 0x1
更新:
好的,我要做的是为用户提供几个单词表,每个单词表都包含几个单词,用户可能已经学习了一些单词(例如苹果),所以他/她想跳过那些话,并希望他们永远不会再出现。所以,我想让用户跳过这些单词,并且选择的单词将被发送到服务器或保存在本地文件中,可能不需要发送整个单词或短语。我在这里发现了一个问题:http://stackoverflow.com/questions/7700400/whats-a-good-hash-function-for-english-words,你有更好的解决方案吗?