【发布时间】:2010-06-15 15:24:00
【问题描述】:
在 Java 中,我正在寻找一种将多个键映射到相同值的方法。假设我有数字 0-9 作为键,“x”、“y”和“z”作为值如下:
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
问题:是否有更好的数据结构?
【问题讨论】:
标签: java data-structures