Метод createNewPlanet(String) должен добавлять переданную планету в список planets на следующую позицию после Земли
package com.javarush.task.pro.task12.task1213;
import java.util.ArrayList;
/*
Солнечная система
*/
public class Solution {
public static ArrayList<String> planets = new ArrayList<>();
public static void main(String[] args) {
addPlanets();
print();
createNewPlanet("Звезда Смерти");
print();
}
public static void createNewPlanet(String name) {
// Находим индекс Земли в списке планет
int earthIndex = planets.indexOf("Earth");
// Добавляем новую планету на следующую позицию после Земли
planets.add(earthIndex + 1, name);
}
public static void addPlanets() {
planets.add("Меркурий");
planets.add("Венера");
planets.add("Земля");
planets.add("Марс");
planets.add("Юпитер");
planets.add("Сатурн");
planets.add("Уран");
planets.add("Нептун");
}
public static void print() {
for (int i = 0; i < planets.size(); i++) {
System.out.println(String.format("%s — %d-я планета от Солнца", planets.get(i), (i + 1)));
}
System.out.println();
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Так у вас список заполнен названиями планет на русском языке, а в методе createNewPlanet вы ищете Землю по её английскому названию "Earth".
Замените название на русское:
public static void createNewPlanet(String name) {
// Находим индекс Земли в списке планет
int earthIndex = planets.indexOf("Земля");
// Добавляем новую планету на следующую позицию после Земли
planets.add(earthIndex + 1, name);
}
Или же создайте метод для вставки новой планеты после любой заданной:
public static void createNewPlanet(String name) {
createNewPlanetAfter(name, "Земля");
}
public static void createNewPlanetAfter(String newName, String planet) {
// Находим индекс планеты в списке и добавляем новую планету на следующую позицию
planets.add(planets.indexOf(planet) + 1, newName);
}