我有一段代码:
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[]>();
是一个类变量并且:checkIfPositionIsOccupied(position)
返回真/假
if (storedMembers.contains(position))
我有一种感觉,它与do while
有关。 ,我调试了一下,没有成功。
最佳答案
如果您想在每次迭代时将数组 position
添加到 ArrayList
中,您的 add()
调用必须位于循环内部:
do {
// ...
storedMembers.add(position);
} while(...);
编辑:
for (int i = 0; i < storedMembers.size(); i ++)
// ...
if (!checkIfPositionIsOccupied(position))
storedMembers.add(position);
}
关于java - ArrayList不添加对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22566340/