Проблема не в позиции массива, как я уже сказал, потому что этот массив никогда не меняется (я никогда не удаляю на нем никаких элементов, просто удаляю значения на карте, которая содержит эти сопоставленные логические значения)
Итак проблема была в removeAt (position)
Пример
У меня есть массив Map с 2 значениями
0 - true
1 - true
Если я сделаю map.RemoveAt(0)
, теперь у меня
1 - true (actually in position 0 right now)
но теперь, если я попытаюсь сделать это снова map.removeAt(1)
, там нет элемента в позиции 1, поэтому он является неограниченным
Я решил это, удалив ключом на карте
map.remove(position,true)
Таким образом, это удалит это 1 - истинное значение и только значения с истинным значением этой карты