Я пытаюсь воссоздать настольную игру на Java, в которой я храню набор допустимых мест, которые можно разместить (для ИИ). Я подумал, что, возможно, вместо того, чтобы хранить в виде списка точек, было бы быстрее во время выполнения, если бы у меня был массив / список / словарь координат X, в котором был массив / список координат y, так что, как только вы нашли координату х вам нужно будет только проверить его Ys не все оставшиеся точки ».
Проблема в том, что я должен часто менять действительные баллы. Я придумал несколько возможных решений, но с трудом выбираю / внедряю их:
- HashMap с X в качестве целочисленного ключа и Ys в качестве ArrayList.
- Проблема: Мне нужно будет создавать новый ArrayList каждый раз, когда я добавляю X.
- Также я не уверен в производительности HashMap во время выполнения.
- int [X] [Y] Массив, инициализированный по размеру платы, где каждая точка установлена в свое относительное положение (точка 2,3 устанавливает [2] [3]), недопустимая точка является недействительным целым числом.
- Проблема: Мне бы пришлось пройти через все точки и проверить каждую точку.
- Список точек Это будет просто список связанных точек / массивов.
- Проблема: Списки работают медленнее, чем массивы.
- Как использовать Связанный список точек по сравнению с проверкой всего массива, как указано выше?
Возможно, мне следует использовать 2d связанный список? Каков был бы самый быстрый способ выполнения этого?