Я хотел бы хранить объекты, используя свои координаты, например, так:быстрый способ использования координат в качестве ключей в Javascript Hashmap
var hash_map = {};
hash_map[x + "-" + y] = new Object();
Они могут быть получены с помощью hash_map[x + "-" + y]
.
Однако я не уверен, что создание новой строки при каждом обращении к объекту - такая отличная идея.
В качестве альтернативы можно объединить координаты, делая что-то вроде x | (y >>> 16)
, но я понятия не имею о том, сколько бит сдвинуть значение y
путем, что на самом деле происходит внутри (так как цифры JavaScript являются все поплавки, так что экспонента и мантисса и т. д.) и действительно ли это того стоит.
tl; dr Какой самый быстрый способ (включая сборку мусора) хранения объектов на карте хэша с координатами в качестве ключей?
Часть того, что я могу ответить ... JavaScript битовые операторы все работают на 16-битных целых чисел –
вы должны использовать хэш-карту? Предполагая, что координаты являются целыми числами, почему бы не использовать 2D-массив? Или даже 2D-хэш-карту. Если вы использовали массивы, вы можете предварительно выделить ключи и сэкономить на добавлении уникальных ключей каждый раз при обнаружении нового местоположения. –
Каков максимальный размер координаты? Какой тип координаты (координаты GPS, координаты сетки и т. Д.)? – 10100111001