преобразовать несколько переменных в массив в Java - PullRequest
0 голосов
/ 20 марта 2019

У меня есть класс: fish и rectFish, и вместо того, чтобы создавать fish1, fish2, rect1, rect2 и т. Д., Я хотел бы создать массив для хранения переменной, а затем я бы перебрал его, чтобы получить значения, чтобы сделать определенные вещи, такие как уменьшение счета и т. д. У меня есть пустой цикл, и я хотел бы поместить эти значения в цикл ниже:

      Fish[] fish = new Fish [6];
      Rect[] fishRect = new Rect [6];

    Fish fish1 = new Fish(200, 200);
    Rect fishRect1 = new Rect(200, 200, 50, 30);

    Fish fish2 = new Fish(100, 500);
    Rect fishRect2 = new Rect(100, 500, 50, 30);

    Fish fish3 = new Fish(100, 300);
    Rect fishRect3 = new Rect(100, 300, 50, 30);

И это мой цикл (на самом деле не работает)

for (int i=0; i < fish.length; i ++) {
            if (sharkRect.eats(fishRect[i])) 
            {
                /*eatFishSound.play();
                fish[i].die();
                fishRect[i].die();
                score.increasehealthBy();
                score.decreaseFish();*/
                System.out.print(fishRect[i]);
            }
        }

1 Ответ

1 голос
/ 20 марта 2019

Вы можете создать значения массива в его конструкторе, а затем повторить их с для каждого :

Fish[] fishArr = {
    new Fish(200, 200), 
    new Fish(100, 500),
    new Fish(100, 300)
};

Для каждого цикла:

for (Fish fish : fishArr) {
    System.out.println("Fish: " + fish);
}

То же самое (но более элегантно) как:

for (int  i = 0; i < fishArr.length; i++) {
    Fish fish = fishArr[i];
    System.out.println("Fish: " + fish);
}

Или вы можете использовать List для этого:

List<Fish> fishList = Arrays.asList(
    new Fish(200, 200), 
    new Fish(100, 500),
    new Fish(100, 300)
);

for (Fish fish : fishList) {
    System.out.println("Fish: " + fish);
}

// since Java 8:
fishList.forEach(fish -> System.out.println("Fish: " + fish));

Начиная с Java 9 вы можете использовать of статический метод фабрики:

List<Fish> fishList = List.of(
    new Fish(200, 200), 
    new Fish(100, 500),
    new Fish(100, 300)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...