Menu
Coddy logo textTech

Podsumowanie — HashSet

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 28 z 59.

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie processHashSet, która przyjmuje trzy argumenty:

  1. Obiekt HashSet<Object> (set)
  2. Obiekt Object (input) do przetworzenia
  3. Obiekt String (operation) określający operację do wykonania

Używając instrukcji if/else i poznanych już metod HashSet, metoda powinna zwracać ciąg znaków w zależności od wartości operation:

  • "add": dodaj input do zbioru. Zwróć "Added successfully", jeśli element został dodany, albo "Element already exists", jeśli już znajdował się w zbiorze.
  • "remove": usuń input ze zbioru. Zwróć "Removed successfully", jeśli element został usunięty, albo "Element not found", jeśli nie znajdował się w zbiorze.
  • "find": zwróć "Found at index: [index]", jeśli zbiór zawiera input (gdzie [index] oznacza pozycję elementu w kolejności iteracji); w przeciwnym razie zwróć "Element not found".
  • "count": zwróć "Number of elements: [count]", gdzie [count] oznacza liczbę elementów w zbiorze (użyj size()).

Najpierw sprawdź poprawność danych wejściowych:

  • Jeśli set ma wartość null: zwróć "Invalid set".
  • Jeśli operation ma wartość null lub nie jest jedną z czterech powyższych wartości: zwróć "Invalid operation".
  • W przypadku operacji "find", jeśli input ma wartość null: zwróć "Cannot find null".

Spróbuj swoich sił

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) {
        // Napisz tutaj swój kod
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Wczytaj zbiór początkowy
        String[] items = scanner.nextLine().split(",");
        HashSet<Object> set = new HashSet<>();
        if (!items[0].equals("empty")) {
            for (String item : items) {
                // Najpierw spróbuj przekonwertować na liczbę całkowitą
                try {
                    set.add(Integer.parseInt(item));
                } catch (NumberFormatException e) {
                    set.add(item);
                }
            }
        }
        
        // Wczytaj dane wejściowe
        String inputStr = scanner.nextLine();
        Object input;
        try {
            input = Integer.parseInt(inputStr);
        } catch (NumberFormatException e) {
            input = inputStr;
        }
        
        // Wczytaj operację
        String operation = scanner.nextLine();
        
        System.out.println(processHashSet(set, input, operation));
    }
}

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online