Gau*_*tam 2 java apache-commons guava
我有一种情况,许多键指向一个值.这种情况来自我正在实施的服务定位器模式 -
因此,我需要在用户请求任何匹配键时检索单个值.
从某种意义上说,我需要与Guava相反的MultiMap.
我正在寻找最优化的解决方案,因为我的密钥非常相似,虽然对于特定值是唯一的,但我不确定使用像HashMap这样的通用Map实现是否足以处理这种情况.
例如以下所有签名
==============
_org.appops.server.core.service.mocks.MockTestService_testOperationThree _org.appops.server.core.service.mocks.MockTestService_getService _org.appops.server.core.service.mocks.MockTestService_start _org.appops.server.core.service.mocks .MockTestService_testOperationTwo_String_int _org.appops.server.core.service.mocks.MockTestService_getName _org.appops.server.core.service.mocks.MockTestService_shutdown _org.appops.server.core.service.mocks.MockTestService_testOperationOne_String
=======
指向一个类,即org.appops.server.core.service.mocks.MockTestServiceImpl,我期待着几百个这样的类(值)和几千个这样的类似的签名(密钥)的.
如果没有优化的方法,我总是可以使用HashMap,每个键组都有复制值,我想避免使用.
理想情况下,我想使用Guava的ready实用程序.
HashMap 实际上是你需要的,问题是你误解了它的作用.
如果没有优化的方法,我总是可以使用HashMap,每个键组都有复制值,我想避免使用.
HashMap不会将每个键映射的值的副本存储到该值. HashMap存储对Java对象的引用.它总是相同的成本.甲HashMap<Integer, BigExpensiveObject>,每一个键被映射到相同的BigExpensiveObject取完全相同的存储器量作为HashMap<Integer, Integer>其中每个键被映射到相同的Integer.在整个程序中的只读存储器的区别是之间的差别内存一个 BigExpensiveObject和一个 Integer.
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |