Я обычно использую Hashmap в своих программах, поскольку я знаю, что это обычно наиболее эффективно (если правильно используется) и легко могу справиться с большими картами. Я знаю об enummap , который очень полезен для ключей перечисления, но часто я генерирую небольшую карту, которая никогда не станет очень большой, вероятно, будет отброшен довольно скоро и не имеет проблем с параллелизмом. Есть ли еще одна, простая реализация, которую я могу использовать в этих случаях? Существует ли это? Предположим, у меня есть около миллиона этих крошечных карт, каждая из которых с горсткой (часто менее трех) записей. У меня низкая ссылка - возможно, я на самом деле не ссылаюсь на них до того, как их отбрасывают большую часть времени. Это все еще тот случай, когда HashMap < /code> является лучшим выбором для них? По крайней мере, этого не может быть). < /p>
добавил намного позже после некоторой мысли: < /em> < /p>
Я решил кодировать свой собственный Smallmap < /code>. Легко сделать один с AbstractMap . I have also added a couple of constructors so that a SmallMap can be constructed from an existing Map.
Along the way I had to decide how to represent Entrys and to implement SmallSet for the entrySet method.
I learned a lot by coding (and unit-testing this) and want to share Это, если кто -то еще хочет. Это на GitHub здесь.
Подробнее здесь: https://stackoverflow.com/questions/883 ... all-more-t