更改数组中对象的位置

时间:2012-01-29 23:38:42

标签: java arrays

我有一个带有对象的二维数组。我想要做的就是将这个对象移动到数组的下一个位置并从之前的位置删除它。我的对象是人类,它们只有一个属性(性别(如果它们是男性或女性))。但是真的我不知道我怎么能这样做。有什么建议吗?我的代码就是这样:

    Humans[][] array = new Humans[7][7];

    public int sex() {
        return sex;
    }

    for (int i = 0; i < 7; i++) {
        for (int j = 0; j < 7; j++) {
            for (Humans[] inner : array) {
                for (Humans h : inner) {

                }
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

您可能需要使用旧的for循环:

for (int i=0; i<array.length; i++) {

这样您就可以使用i+1来引用数组中的下一个位置。然后,您可以将该项从i位置复制到(i+1)位置,并将i位置设置为null

答案 1 :(得分:1)

如果您要做的只是将对象从条目[N]移动到1维数组中的条目[N + 1],则不需要循环:

void moveEntry(Humans[] array, int index) {
    array[index + 1] = array[index];
    array[index] = null;
}

我不明白你在尝试用二维数组做什么。

试图理解你想要的东西

void moveRight(Humans[][] array, int x, int y) {
    array[y][x + 1] = array[y][x];
    array[y][x] = null;
}
void moveUp(Humans[][] array, int x, int y) {
    array[y + 1][x] = array[y][x];
    array[y][x] = null;
}