Какую реализацию карты следует использовать, если моя карта должна быть маленькой, более чем быстро?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Какую реализацию карты следует использовать, если моя карта должна быть маленькой, более чем быстро?

Сообщение Anonymous »

Я обычно использую 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»