Я пытаюсь добавить несколько значений в ArrayList
с помощью инструкции if/else
. Переменная numberOfShips
объявляет, сколько полей. Однако, когда я печатаю .size()
, размер составляет всего 1, причем последний добавленный объект является тем, который находится там. Я не могу понять, что я делаю неправильно. Я знаю, что ArrayList
неявно увеличивается по размеру при добавлении элементов, так что этого не может быть.ArrayList не добавляет объекты inteded way
public ArrayList<Ship> createFleet(int choice) {
ArrayList<Ship> fleet = new ArrayList<Ship>();
if (count < numberOfShips && choice > 0 && choice < 5) {
if (choice == 1) {
Ship ac = new Ship("Aircraft carrier", 5, false);
fleet.add(ac);
count++;
System.out.println("Aircraft carrier has been added to fleet.");
} else if (choice == 2) {
Ship bs = new Ship("Battleship", 4, false);
fleet.add(bs);
count++;
System.out.println("Battleship has been added to fleet.");
} else if (choice == 3) {
Ship sm = new Ship("Submarine", 3, false);
fleet.add(sm);
count++;
System.out.println("Submarine has been added to fleet.");
} else if (choice == 4) {
Ship ds = new Ship("Destroyer", 3, false);
fleet.add(ds);
count++;
System.out.println("Destroyer has been added to fleet.");
} else if (choice == 5) {
Ship sp = new Ship("Patrol Boat", 2, false);
fleet.add(sp);
count++;
System.out.println("Patrol boat has been added to fleet.");
}
} else {
System.out.println("Not an option.");
}
return fleet;
}
Вы видели утверждение 'switch'? это может помочь вам здесь. – vikingsteve
Если вы проходите выбор и ожидаете, что метод добавит судно в список _existing_, вам необходимо передать его в список вместо создания в новом методе 'new'. – khelwood