Как я могу получить доступ к объектам в цикле? - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь передать значение позиции моего объекта «следующий» следующему «следующему» объекту.Можно ли написать этот код в виде цикла и масштабировать его на n?


next.next.next.next.pos.y = next.next.next.pos.y;
next.next.next.next.pos.x = next.next.next.pos.x;
next.next.next.pos.y = next.next.pos.y;
next.next.next.pos.x = next.next.pos.x;
next.next.pos.y = next.pos.y;
next.next.pos.x = next.pos.x;
next.pos.x = pos.x;
next.pos.y = pos.y;

1 Ответ

0 голосов
/ 16 июня 2019

Полагаю, вы хотите что-то вроде этого:

while(obj.next != null) {
  obj.next.pos.x = obj.pos.x;
  obj.next.pos.y = obj.pos.y;
  obj = obj.next;
}

Позднее редактировать:

Извините, я неправильно понял ваш вопрос.

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

List<Obj> objs = new ArrayList<>();

objs.add(obj);

// Add everything to a list
while(obj.next != null) {
    objs.add(obj.next);
    obj = obj.next;
}

// Walk the list in the reverse order
for(i = objs.size() - 1; i > 1 ; i--) {
  objs[i].pos.x = objs[i - 1].pos.x;
  objs[i].pos.y = objs[i - 1].pos.y;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...