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 שכבר למדתם, המתודה צריכה להחזיר מחרוזת בהתאם ל־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()).

בדקו תחילה את הקלטים:

  • אם 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 אונליין