Где я могу найти хорошую реализацию ByteArrayMap?(быстро с низким gc) - PullRequest
0 голосов
/ 28 февраля 2012

Я ищу реализацию карты, которая использует байтовые массивы (byte []) в качестве ключа карты.

Вы можете выполнять операции get, подобные этому map.get (myByteArray, 0, len);

гугл не помог. (

1 Ответ

4 голосов
/ 28 февраля 2012

Вы можете использовать ByteBuffer .Он реализует метод хеширования таким образом, что сгенерированный хеш будет зависеть от содержимого ByteBuffer.Однако вы должны убедиться, что содержимое этого буфера, используемого в качестве ключа, не должно изменяться.

Непосредственно из JavaDoc Поскольку хэш-коды буфера зависят от содержимого, не рекомендуется использовать буферы в качестве ключей в хэш-картах или аналогичных данных.структуры, если не известно, что их содержимое не изменится.

Это один из способов сделать это.Другой вариант - реализовать собственный класс, который будет хранить байтовый массив, и реализовать методы hashCode () и equals (), которые рассматривают содержимое этого байтового массива.

...