TransWikia.com

Не могу реализовать методы коллекции List в JAVA

Stack Overflow на русском Asked by Andrew_the_seaman on November 5, 2021

Cтолкнулся с проблемой при выполнении задачи: не могу реализовать методы коллекции List в соответствие с условиями задачи. Прошу помочь разобраться в ошибках и предложить решения, если это возможно!

Условия задачи:

Используя Scanner scanner = new Scanner(System.in) и scanner.nextLine(), в бесконечном цикле необходимо последовательно получить названия дел или слово end.Если не введено слово end, то сохраните введенное значение в переменную task типа String String task = scanner.nextLine() и добавьте его в список list. Если введено слово end, то используя конструкцию for (String task : list ), выводим задачи в консоль. Можно также вывести и индекс, иcпользуя локальный счетчик.
После вывода списка дел в консоль, программа дает пользователю возможность удалить из списка определенное дело по индексу. Это происходит в бесконечном цикле, пока пользователь не введет ключевое слово "Finish".
Добавьте проверку, равно ли введенное значение условию для выхода из цикла — строке Finish.
Используя метод ArrayList remove(int index), удалите дело из списка. Обратите внимание, что необходимо будет перевести String в int.
Если введено слово Finish, то, используя конструкцию for (String task : list), выведите задачи в консоль вместе с индексом. Убедитесь, что дело корректно удалилось из списка и индексы были сдвинуты влево.

Вот мой код:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    ArrayList<String> list = new ArrayList<>();
    
    while(true) {
      System.out.println("Введите название задачи (для завершения введите 'end'):");
      System.out.println("1. Добавить задачуn2. Вывести список задачn3. Удалить задачуn0. Выход");
      String input = scanner.nextLine();
      if (input.equals("1")) {
        System.out.println("Введите задачу для планирования:");
        String task = scanner.nextLine();
        list.add(task);
      } else if (input.equals("2")) {
        System.out.println("Список задач:n" + list);
        scanner.nextLine();
      } else if (input.equals("Finish")) {
        int task = Integer.parseInt(task);
      

      } else if (input.equals("end")) {
        for (String task : list) {

    }
  }
}

One Answer

Попробуйте так:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    
    private final static List<String> CASES = new ArrayList<>();

    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("Введите название задачи (для завершения введите 'end'):");            
            String input = scanner.nextLine();
            if ("end".equals(input)) {
                for (int i = 0; i < CASES.size(); i++) System.out.println(i + " -> " + CASES.get(i));
                System.out.println("Введите индекс для удаления задачи либо нажмите любую кнопку для продолжения : ");
                removeIfExist(scanner.nextLine());
                continue;
            }
            if ("Finish".equals(input)) break;
            CASES.add(input);
        }
        
    }
    
    private static boolean removeIfExist(String index) {
        try {
            int i = Integer.valueOf(index);
            CASES.remove(i);
            return true;
        } catch (NumberFormatException | IndexOutOfBoundsException e) {
            return false;
        }
    }
    
}

Answered by Дмитрий on November 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP