所以我有一个使用多个HashMaps的程序,它存储0到50之间的少量整数键,其键代表一个小于100的唯一序数。
这些地图经常被访问,我已经完成了剖析,以确定它将有助于提供更高效的数据结构。理想情况下,我会使用类似于EnumMap的东西,因为这些整数很小而且很独特。
限制:我正在尝试避免使用数组,因为这些地图中的许多只有少数几个可能的键。我也试图避免第三方库。大型图书馆肯定是出局的,虽然小型图书馆,或者只有1或2个班级可能没问题。
有没有人知道这种情况的快速地图?
答案 0 :(得分:4)
如果您的密钥<= 100,则数组应该相当有效;数组的大小将是400字节。我不知道地图结构的条目不会合理地接近这个大小。
如果您的地图(作为数组)总计4MB或40MB或其他什么,这是否重要?您可以将JVM堆设置得很大。
备选方案2):
答案 1 :(得分:3)
GNU Trove has primitive maps会做你想做的事。但是,如果你不是试图剔除每一个字节的内存,我会提出第二个托马斯建议只使用一个数组。