Как распечатать значения x и y домов, которые я генерирую? - PullRequest
0 голосов
/ 13 мая 2019

Мне удалось сгенерировать сетку домов 1000 на 1000, но она выводит сетку 1000 на 1000, равную нулю. Я хочу, чтобы эта сетка выводила сетку 1000 на 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;
    } 
}
    public static void main(String[] args) throws FileNotFoundException {
        House[][] houses = new House[250][100];
        Homerville homerville = new Homerville(2000000, 250, 50, 200, 1000, 24960,"Bart Complex", "Lisa Complex", "Distribution Center", 1, 300, 500);
        Point[][] graph = new Point[1000][1000];
         /*for (int i = 0; i < graph.length; i++) {
            for (int j = 0; j < graph.length;  j++) {
                graph[i][j] = new Point(i ,j);
            }
        }
        */
        printhouses(houses);

    }
    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();
        }
    }

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Я не уверен, что переменная 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, это всегда нечетное число.

0 голосов
/ 15 мая 2019

Я использовал отдельный метод, называемый printhouses, для решения проблемы:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...