簡體   English   中英

如何在循環中訪問對象?

[英]How can I access objects in a loop?

我試圖將我的對象'next'的位置值移交給下一個'next'對象。 是否可以將此代碼編寫為循環並將其縮放為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;

我想你想要這樣的東西:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM