تنفيذ واجهة Things في Java: بناء هيكل بيانات حقيبة قابلة للتكرار
فيما يلي شرح شامل لكيفية استخدام وتنفيذ واجهة Things
في Java لتنفيذ هيكل البيانات “الحقيبة” (Bag
). الهدف الرئيسي هو إضافة العناصر إلى الحقيبة، إزالتها، والبحث عنها.
أولاً وقبل كل شيء، يجب أن نتأكد من تنفيذ جميع الطرق المطلوبة المعرفة في واجهة Things
. سنقوم بتوفير تنفيذ لكل منها في فئة Bag
:
-
تعامل مع أخطاء StdOut في Java24/03/2024
-
مشكلة تنسيق SimpleDateFormat في Java18/03/2024
javaimport java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Bag implements Things {
private List items;
public Bag() {
this.items = new ArrayList<>();
}
@Override
public int size() {
return items.size();
}
@Override
public boolean add(T x) {
// نقوم بإضافة العنصر إلى الحقيبة
return items.add(x);
}
@Override
public T remove(T x) {
// نقوم بإزالة العنصر من الحقيبة، إذا كان موجوداً
if (items.contains(x)) {
items.remove(x);
return x;
}
return null;
}
@Override
public T find(T x) {
// نبحث عن العنصر في الحقيبة، وإذا وجدناه نرجعه
if (items.contains(x)) {
return x;
}
return null;
}
@Override
public void clear() {
// نقوم بتفريغ الحقيبة من جميع العناصر
items.clear();
}
@Override
public Iterator iterator() {
// نقوم بتوفير Iterator للحقيبة للتمكن من الاستفادة منها في الحلقات
return items.iterator();
}
}
بعد تنفيذ فئة Bag
، يمكنك الآن استخدامها في الفئة ThingsDemo
:
javapublic class ThingsDemo {
public static void main(String[] args) {
// إنشاء حقيبة جديدة
Bag bag = new Bag<>();
// إضافة عناصر إلى الحقيبة
bag.add("Item1");
bag.add("Item2");
bag.add("Item3");
// طباعة حجم الحقيبة
System.out.println("Size of the bag: " + bag.size());
// إزالة عنصر من الحقيبة
String removedItem = bag.remove("Item2");
System.out.println("Removed item: " + removedItem);
// البحث عن عنصر في الحقيبة
String itemToFind = "Item1";
String foundItem = bag.find(itemToFind);
if (foundItem != null) {
System.out.println("Found item '" + itemToFind + "' in the bag");
} else {
System.out.println("Item '" + itemToFind + "' not found in the bag");
}
// طباعة حجم الحقيبة بعد التعديلات
System.out.println("Updated size of the bag: " + bag.size());
}
}
باستخدام هذا الكود، يمكنك تفهم كيفية استخدام وتنفيذ واجهة Things
لإنشاء هيكل البيانات “الحقيبة” في Java، مما يسمح لك بإضافة وإزالة العناصر والبحث عنها بسهولة.
المزيد من المعلومات
بالطبع، دعونا نوسع المزيد عن الكود ونقدم معلومات إضافية حول استخدام وتنفيذ واجهة Things
في فئة Bag
في Java.
-
تفاصيل حول الواجهة
Things
:size()
: تُستخدم لاسترجاع حجم الحقيبة، أي عدد العناصر فيها.add(T x)
: تُستخدم لإضافة عنصر إلى الحقيبة. إذا نجحت العملية، يتم إرجاعtrue
.remove(T x)
: تُستخدم لإزالة عنصر من الحقيبة. إذا تمت العملية بنجاح، يتم إرجاع العنصر الذي تمت إزالته.find(T x)
: تُستخدم للبحث عن عنصر في الحقيبة. إذا وجد، يتم إرجاع العنصر.clear()
: تُستخدم لتفريغ الحقيبة من جميع العناصر.
-
فئة
Bag
وتحقيق واجهةThings
:- تمثل فئة
Bag
هيكل بيانات حقيبة (Bag) يمكنها الاحتفاظ بعناصر متكررة. - تحتوي الحقيبة على قائمة (
List
) لتخزين العناصر. - يتم تنفيذ جميع طرق واجهة
Things
بشكل كامل. - تم توفير Iterator لتمكين الاستفادة من الحلقات في الحقيبة.
- تمثل فئة
-
فئة
ThingsDemo
واستخدام الحقيبة:- تم إنشاء حقيبة (
Bag
) جديدة وإضافة بعض العناصر إليها. - يتم طباعة حجم الحقيبة باستخدام
size()
. - تم إزالة عنصر من الحقيبة باستخدام
remove()
وطباعة العنصر المزال. - تم البحث عن عنصر معين في الحقيبة باستخدام
find()
وإظهار رسالة بناءً على وجوده أو عدمه. - يتم طباعة الحجم المحدث للحقيبة بعد التعديلات.
- تم إنشاء حقيبة (
-
مفهوم الـ Iterator:
- يسمح الـ Iterator بالتنقل عبر العناصر في الحقيبة.
- تم توفير Iterator في فئة
Bag
للسماح بالاستفادة من الحلقات (loops) مباشرة.
-
التعامل مع الأخطاء:
- تم التحقق من وجود العنصر قبل إزالته لتجنب الأخطاء.
- تم التحقق من وجود العنصر قبل البحث عنه لتجنب الأخطاء.
باستخدام هذه المعلومات، يمكنك الآن استخدام فئة Bag
بفعالية لتخزين وإدارة العناصر بواسطة واجهة Things
. تذكر دائمًا التحقق من العناصر قبل تنفيذ العمليات لتجنب الأخطاء وضمان استخدام الهيكل بشكل صحيح.