Menu
Coddy logo textTech

Повторение - HashSet

Часть раздела Логика и управление потоком путешествия по Java на Coddy. Урок 28 из 59.

challenge icon

Задание

Легко

Создайте метод с именем processHashSet, который принимает три аргумента:

  1. HashSet<Object> (set)
  2. Object (input) для обработки
  3. String (operation), задающий выполняемую операцию

Используя операторы if/else и уже изученные методы HashSet, метод должен возвращать String в зависимости от значения operation:

  • "add": добавьте input в множество. Верните "Added successfully", если элемент был добавлен, или "Element already exists", если он уже находился в множестве.
  • "remove": удалите input из множества. Верните "Removed successfully", если элемент был удалён, или "Element not found", если его не было в множестве.
  • "find": верните "Found at index: [index]", если множество содержит input (где [index] — позиция элемента в порядке итерации), в противном случае верните "Element not found".
  • "count": верните "Number of elements: [count]", где [count] — количество элементов в множестве (используйте size()).

Сначала Validate входные данные:

  • Если set равен null: верните "Invalid set".
  • Если operation равен null или не является одной из четырёх перечисленных операций: верните "Invalid operation".
  • Для операции "find", если input равен null: верните "Cannot find null".

Попробуйте сами

import java.util.HashSet;
import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static String processHashSet(HashSet<Object> set, Object input, String operation) {
        // Напишите ваш код здесь
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Прочитать начальное множество
        String[] items = scanner.nextLine().split(",");
        HashSet<Object> set = new HashSet<>();
        if (!items[0].equals("empty")) {
            for (String item : items) {
                // Попробовать сначала распарсить как целое число
                try {
                    set.add(Integer.parseInt(item));
                } catch (NumberFormatException e) {
                    set.add(item);
                }
            }
        }
        
        // Прочитать ввод
        String inputStr = scanner.nextLine();
        Object input;
        try {
            input = Integer.parseInt(inputStr);
        } catch (NumberFormatException e) {
            input = inputStr;
        }
        
        // Прочитать операцию
        String operation = scanner.nextLine();
        
        System.out.println(processHashSet(set, input, operation));
    }
}

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Java