ArrayList没有添加对象?

时间:2014-03-21 18:06:43

标签: java loops arraylist

我有一段代码:

public void setBoardMemberPosition() {

    int[] position = null;

    do{
        positionX = RandomNumberGenerator.generateRandomNumber(Board.DIMENSION);
        positionY = RandomNumberGenerator.generateRandomNumber(Board.DIMENSION);

        position = new int[] { positionX, positionY };


    } while(checkIfPositionIsOccupied(position));

    board.setElementAt(positionX, positionY, name);
    storedMembers.add(position);

}

有人可以向我解释为什么这些元素没有被添加到列表中,其中:

private ArrayList<int[]> storedMembers = new ArrayList<int[]>();是一个Class变量,并且:checkIfPositionIsOccupied(position)返回true / false

if (storedMembers.contains(position))

我感觉它与do while有关,我调试它没有运气。

2 个答案:

答案 0 :(得分:2)

如果要在每次迭代时将数组position添加到ArrayList,则add()调用必须位于循环内:

do {
    // ...

    storedMembers.add(position);
} while(...);

修改

for (int i = 0; i < storedMembers.size(); i ++)
    // ...

    if (!checkIfPositionIsOccupied(position))
        storedMembers.add(position);
}

答案 1 :(得分:0)

因为你没有在你的while循环中添加任何东西到列表中?!