eik*_*kes 7 java data-structures
在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
Run Code Online (Sandbox Code Playgroud)
现在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
Run Code Online (Sandbox Code Playgroud)
问题:是否有更好的数据结构?
Pet*_*ham 19
任何人Map<Integer,String>
都会这样做 - 你只存储对字符串的引用,而不是它的副本,所以无论多长时间都没关系.
如果要多次构建相同的字符串值,请使用intern()
每次为该值获取相同的String对象.