Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ملخص - HashSet

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 28 من 59.

challenge icon

التحدي

سهل

قم بإنشاء طريقة تسمى processHashSet تأخذ ثلاث وسائط:

  1. HashSet من الكائنات (set)
  2. كائن (input) للمعالجة
  3. سلسلة نصية (operation) تحدد العملية المراد تنفيذها

يجب أن تؤدي الطريقة عمليات مختلفة باستخدام مفاهيم التحكم في التدفق المتقدم (Advanced Control Flow):

العمليات (باستخدام Switch Expression):

  • "add": إضافة المدخل إلى المجموعة وإرجاع رسالة نجاح/فشل
  • "remove": إزالة المدخل من المجموعة وإرجاع رسالة نجاح/فشل
  • "find": البحث عن المدخل في المجموعة باستخدام عبارات التسمية (label statements)
  • "count": عد العناصر من نوع Integer باستخدام instanceof

استخدم عبارات الحماية (Guard Clauses) للتحقق من صحة المدخلات ومعالجة الأخطاء:

  • إذا كانت المجموعة null: أرجع "Invalid set"
  • إذا كانت العملية غير صالحة: أرجع "Invalid operation"
  • لعملية "find" إذا كان المدخل 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));
    }
}

جميع دروس Logic & Flow