[英]Data Structure having same value for multiple keys and searchable by individual keys
我有一个用例,其中我必须维护键值对存储,所有键都是唯一的,并且多个键可以映射到相同的值。 而且,每个单独的键都可以搜索它。
例如:
(K1,K2,K3) -> V1
(K3,K4) -> V2
(K5) -> V3
and so on.
在K2上搜索应返回V1
它有点类似于Multikeymap,但是可以通过单个键进行搜索。 是否有任何数据结构允许我在O(1)中执行此操作。
没有这样的DS可以在恒定的O(1)时间内给出结果,但是HashMap应该足够好。 对于插入,删除和搜索操作,哈希映射的平均复杂度为O(1)。 而且,如果您使用的是JDK8,那么频繁冲突对性能的影响也将较小。 请参阅: https : //dzone.com/articles/hashmap-performance 。
由于只有值的引用存储在Map中,因此即使键的数目和值之间不匹配,存储也不应该是大问题。
而且,如果键不是Long,String,Int等,并且是某些自定义对象,则不要忘记重写哈希码和equals方法。
如果这仍然不能满足您的要求,那么请查看Guava和Apache Commons Collection库中的这些链接,但是您可能必须收集一些有关其性能数字的信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.