РЕДАКТИРОВАТЬ : Этот первый график неверно истолковывает ваш вопрос.Тем не менее, мое решение все еще должно работать для вас.
То, что вы запрашиваете, - это потокобезопасный массив, который может быть доступен одновременно нескольким «потокам» выполнения.Учитывая, что вы новичок в Java, я предполагаю, что ваша игра не будет многопоточной, и поэтому, если вы удалите элемент в массиве, это обязательно произойдет до запуска следующего цикла.
* 1006Тем не менее, если вы действительно хотите, вы можете добавить булеву функцию «monster.dead» в ваш массив и установить ее в значение true, когда умирает монстр.Тогда в вашем цикле вы скажете:
for( i <- 0 to monsters.length-1)
if (monsters[i].dead == false)
monsters(i).act
Скорее всего, вы не столкнетесь с этой проблемой.
Редактировать : просто перечитайтеваш пост, и понял, что вы будете удалять монстров, когда ваш массив работает.Помните, что каждая выполняемая вами строка происходит последовательно, поэтому, когда вы удаляете монстров [i], она исчезнет при следующей оценке цикла for.Если у вас есть массив монстров с 5 монстрами в нем, и вы удалите второго, когда цикл снова будет выполнен,
monsters.length - 1
теперь оценивается в 3.Вы никогда не столкнетесь с моментом, когда попадете на удаленный элемент массива.