ملخص - HashSet
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 28 من 59.
التحدي
سهلقم بإنشاء طريقة تسمى processHashSet تأخذ ثلاث وسائط:
- HashSet من الكائنات (
set) - كائن (
input) للمعالجة - سلسلة نصية (
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
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات4HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمالمسح والنسخملخص - HashSet2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم