在Java中,我正在寻找一种将多个键映射到相同值的方法。比方说,我有数字0-9的按键,而“x”,“y”和“Z”的值如下:用于将多个键映射到相同值的Java数据结构
0->y
1->y
2->y
3->x
4->x
5->y
6->z
7->y
8->z
9->z
现在x,y和z是很长的字符串,我有数百万个密钥,所以我无法多次存储这些字符串。你会怎么做呢?
我想到的一个想法是创建两个数组:生成一个人为的第二个键,将原始键映射到该键,而另一个数组中的键是实际值的关键。这样,该值仅存储一次和原始关键仍然可以间接地映射到值:
0->k1
1->k1
2->k1
3->k2
4->k2
5->k1
6->k3
7->k1
8->k3
9->k3
k1->y
k2->x
k3->z
问题,但:有没有更好的数据结构呢?
这很有道理。谢谢。 – eikes 2010-06-15 15:32:07
+1 for'intern()' – 2010-06-15 23:07:17
皮特,够公平的。我真的没有时间写一篇论文,所以我刚刚删除了评论。 – 2010-06-17 21:52:42