Java 如何打印生成的房屋的x和y值?

Java 如何打印生成的房屋的x和y值?,java,multidimensional-array,Java,Multidimensional Array,我设法生成了一个1000乘1000的房屋网格,但它打印出了一个1000乘1000的空网格。我希望这个网格打印出每个房子的x和y值的1000 x 1000网格。但是,使用我的getx和gety方法只返回NullPointerException。我不确定我的getx和gety方法有什么问题 public class House { static String[] houseletters = Stream.of("A", "B", "C", "D", "E", "F", "G", "H",

我设法生成了一个1000乘1000的房屋网格,但它打印出了一个1000乘1000的空网格。我希望这个网格打印出每个房子的x和y值的1000 x 1000网格。但是,使用我的getx和gety方法只返回NullPointerException。我不确定我的getx和gety方法有什么问题

public class House {
    static String[] houseletters = Stream.of("A", "B", "C", "D", "E", "F", "G", "H", "I", "J").toArray(String[]::new); 
    static String[] houseletters1 = Stream.of("AA", "BB", "CC", "DD", "EE", "FF", "GG", "II", "JJ").toArray(String[]::new);
    private double streetnum;
    private double avnum;
    private String houseletter = "";
    private double length = 100;
    private double width = 100;
    private double x;
    private double y;
    private double units = 1;

    public House(double streetnum, double avnum, String houseletter, double length, double width, double x, double y, double units) {
        this.streetnum = streetnum;
        this.avnum = avnum;
        this.houseletter = houseletter;
        this.length = length;
        this.width = width;
        this.x = x;
        this.y = y;
        this.units = units;
    }
    public double getStreetNum() {
        return streetnum;
    }
    public double getAvNum() {
        return avnum;
    }
    public String getHL() {
        return houseletter;
    }
    public double getLength() {
        return length;
    }
    public double getWidth() {
        return width;
    }
    public double getX(double x) {
        return x;
    }
    public double getY(double y) {
        return y;
    }
    @Override
    public String toString() {
        return this.houseletter;
    } 
}
我不确定I或j变量是否代表y值,但可以使用模运算符区分奇偶数

if (j % 2 == 1) {
  //odd
  houses[i][j] = new House(i, j, houseletters[j], 100, 100, i, j, 1);
} else {
  //even
  houses[i][j] = new House(i, j, houseletters1[j], 100, 100, i, j, 1);
}

模运算符返回除法后的余数。如果除以2后的余数等于1,则始终是奇数。

为了解决这个问题,我使用了一种称为Printhouse的单独方法:

public static void printhouses(House[][] h) {
    for (int i = 0; i < h.length; i++) {
        for (int j = 0; j < h[i].length; j++) {
            System.out.print(h[i][j] + " ");
        }
        System.out.println();
    }
}

只是它把房子打印成空的。我正试图使用getX和getY方法返回生成房屋的x和y值,但它给了我一个NullPointerException。

你能发布更完整的代码吗,比如房屋声明的位置和尺寸?房屋在for循环之前声明:House[]House=new House[250][100];250代表街道数,100代表大道数。houseletters和houseletters 1用于指定房屋位于街区的哪一侧。1 block=大街之间的长度1000英尺,或穿过10栋房子的长度[大街垂直),它是街道之间的长度200英尺,或向上2栋房子的长度[街道水平)。为了清楚起见,j是y值。@DavidHuang这回答了你的问题吗?如果是这样,请接受答案。我设法用打印房屋的方法解决了这个问题。尽管如此,无论如何还是要感谢你的帮助。
public static void printhouses(House[][] h) {
    for (int i = 0; i < h.length; i++) {
        for (int j = 0; j < h[i].length; j++) {
            System.out.print(h[i][j] + " ");
        }
        System.out.println();
    }
}