Java 如何将单阵列转换为双阵列

Java 如何将单阵列转换为双阵列,java,Java,在这里,我编写了一段代码,但使用了单数组,但现在我想将其转换为双数组[] 有些事情应该改变,但我可以让它工作 这是类的一部分,它得到了一个单数组,我想将其更改为双数组 public House[][] neighbors(House victim) { House[][] n = new House[8]; int row = victim.address / size; int col = victim.address % size; if (row

在这里,我编写了一段代码,但使用了单数组,但现在我想将其转换为双数组[]

有些事情应该改变,但我可以让它工作

这是类的一部分,它得到了一个单数组,我想将其更改为双数组

    public House[][] neighbors(House victim) {
    House[][] n = new House[8];

    int row = victim.address / size;
    int col = victim.address % size;

    if (row != 0 && row != (size - 1) && col != 0 && col != (size - 1)) {
        n[0] = houses[victim.address - 1];
        n[1] = houses[victim.address + 1];
        n[2] = houses[victim.address - size];
        n[3] = houses[victim.address - size - 1];
        n[4] = houses[victim.address - size + 1];
        n[5] = houses[victim.address + size];
        n[6] = houses[victim.address + size - 1];
        n[7] = houses[victim.address + size + 1];
        return n;
    }

    if (row == 0 && col != 0 && col != (size - 1)) {
        n[0] = houses[victim.address - 1];
        n[1] = houses[victim.address + 1];
        n[2] = houses[victim.address + size];
        n[3] = houses[victim.address + size - 1];
        n[4] = houses[victim.address + size + 1];
        n[5] = houses[victim.address + (size * (size - 1))];
        n[6] = houses[victim.address + (size * (size - 1)) + 1];
        n[7] = houses[victim.address + (size * (size - 1)) - 1];
        return n;
    }

    if (row == (size - 1) && col != 0 && col != (size - 1)) {
        n[0] = houses[victim.address - 1];
        n[1] = houses[victim.address + 1];
        n[2] = houses[victim.address - (size * (size - 1))];
        n[3] = houses[victim.address - (size * (size - 1)) + 1];
        n[4] = houses[victim.address - (size * (size - 1)) - 1];
        n[5] = houses[victim.address - size];
        n[6] = houses[victim.address - size - 1];
        n[7] = houses[victim.address - size + 1];
        return n;
    }

    if (col == 0) {
        n[0] = houses[victim.address + (size - 1)];
        n[1] = houses[victim.address + 1];
        n[2] = houses[victim.address - size];
        n[3] = houses[victim.address - size - 1];
        n[4] = houses[victim.address - size + 1];
        n[5] = houses[victim.address - (size * (size - 1))];
        n[6] = houses[victim.address - (size * (size - 1)) + 1];
        n[7] = houses[victim.address - (size * (size - 1)) - 1];
        return n;
    }
我假设,通过“双”数组,你的意思是你想要一个2D数组。由于您没有为双数组指定所需的维度,因此在本例中,我将假定
2x4

而不是写作

House[][] n = new House[8];
你想要

House[][] n = new House[2][4];
然后,您要替换以下表单的每一行:

 n[0] = houses[victim.address - 1]
 n[0][1] = houses[victim.address - 1]
具有以下形式的行:

 n[0] = houses[victim.address - 1]
 n[0][1] = houses[victim.address - 1]

第一个索引指定行编号,第二个索引指定二维数组的列编号。你可能比我更清楚哪些索引对应该与哪个特定的房子匹配。

对于这部分:n[0][1]=房子[Victor.address-1]我是这样做的,但它说:无法从房子[]转换到房子。