在ArrayList java中旋转值

时间:2013-11-05 22:23:09

标签: java android arraylist position

我有一个ArrayList:

ArrayList<Body> snakeBody = new ArrayList<Body>();
Body bodyOne = new Body();
bodyOne.setY(10);
bodyTwo.setX(10);

Body bodyTwo = new Body();
bodyTwo.setY(9);
bodyTwo.setX(10);

snakeBody.add(bodyOne);
snakeBody.add(bodyTwo);

好的,没问题。当我移动蛇......她正在向下移动(增加Y)(想象一个网格)。记住,我的蛇有两具尸体。

我知道下一个移动,bodyOne-coorY将是11,bodyTwo-Y将是10。

这是我的问题:我如何交换价值观?我不知道。看这个。

SnakeBody    Position    Y     X   
                0        10    10
                1         9    10

现在,下一步感动。 ÿ++

New value for Y its 11 

I want this result , but I can't get it.

Position    Y     X   
   0        11    10
   1        10    10

我这样做,但没有工作

        for ( int i = 0  ; i < snakeBody.size() - 1  ;  i++ ){

        y = snakeBody.get(i).getPositionY();
        x = snakeBody.get(i).getPositionX();

        snakeBody.get( i + 1 ).setPositionY(y);
        snakeBody.get( i + 1 ).setPositionX(x);

    }

最后一个值与前一个值相同。

感谢所有人。

1 个答案:

答案 0 :(得分:0)

我不确定我是完全理解你的问题,但是现在就去了。

如果您只是想增加每个身体的Y坐标,请尝试类似

的内容
for(int i = 0; i < snakeBody.size() - 1; i++)  {
    Body currentBody = snakeBody.get(i);
    currentBody.setPositionY(currentBody.getPositionY()+1);
    snakeBody.set(i, currentBody);
}

如果你试图在snakeBody ArrayList中交换bodyOne和bodyTwo的位置,那么this other question可能有助于他们建议的地方

Collections.swap(snakeBody, 0, 1);