Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

Javaالإنترفيس SortedSet في جافا

  • مقدمة
  • دوال الإنترفيس SortedSet
  • مثال شامل

مقدمة

الإنترفيس SortedSet يرث من الإنترفيس Set. تم بناءه لتخزين العناصر بترتيب تصاعدي ( Ascending ).

إذاً في حال كانت قيم العناصر تمثل أرقام، عندها يتم ترتيبهم من العدد الأصغر إلى العدد الأكبر.
في حال كانت قيم العناصر تمثل نصوص أو كلمات أو أحرف, عندها يتم ترتيبهم ترتيباً أبجدياً.

كما أنه يحتوي على دوال جديدة غير موجودة في الإنترفيس Set.


نظرة عامة

  • بشكل عام، يستخدم لإنشاء مصفوفة ليس لها حجم محدد.
  • لا يمكنه إحتواء عناصر متكررة, أي لا يمكنه تخزين كائنين عندهم نفس النوع و نفس القيمة.
  • يتم ترتيب العناصر فيه بشكل تلقائي بترتيب تصاعدي حسب قيمهم.
  • يملك دواله الخاصة إضافةً إلى الدوال التي ورثها من الإنترفيس Set.
  • بعض الدوال التي يملكها ترمي الإستثناء UnsupportedOperationException إذا تم استخدامهم بطريقة خاطئة.
  • يرمى الإستثناء ClassCastException في حال كان لا يمكن تحويل نوع الكائن إلى نوع آخر.
  • يرمى الإستثناء NullPointerException في حال تم إضافة القيمة null فيه لأنه لا يقبل القيمة null.

دوال الإنترفيس SortedSet

الجدول التالي يحتوي على دوال الإنترفيس SortedSet.

الدالة مع تعريفها
1 public Object first() ترجع قيمة أول عنصر موجود في الكائن الذي قام باستدعائها.
ملاحظة: قيمته ستكون أصغر قيمة لأن العناصر في هذا الكائن تترتب فيه بشكل تصاعدي.
2 public Object last() ترجع قيمة آخر عنصر موجود في الكائن الذي قام باستدعائها.
ملاحظة: قيمته ستكون أكبر قيمة لأن العناصر في هذا الكائن تترتب فيه بشكل تصاعدي.
3 public SortedSet headSet(Object end) ترجع كائن نوعه SortedSet يحتوي على جميع عناصر الكائن الذي قام باستدعائها الموجودة قبل الكائن end.
4 public SortedSet tailSet(Object Start) ترجع كائن نوعه SortedSet يحتوي على جميع عناصر الكائن الذي قام باستدعائها إبتداءاً من الكائن start حتى آخر عنصر موجود فيه.
5 public SortedSet subSet(Object start, Object end) ترجع كائن نوعه SortedSet يحتوي على جميع عناصر الكائن الذي قام باستدعائها إبتداءاً من الكائن start وصولاً إلى الكائن end.
6 public Comparator comparator() ترجع كائن نوعه Comparator يمثل الإنترفيس المستخدم في مقارنة العناصر.
ترجع null في حال لم تقم بتغيير الإنترفيس الإفتراضي.

مثال شامل

في المثال التالي قمنا بإنشاء كائن من الكلاس TreeSet و الذي يرث من الإنترفيس SortedSet.
قمنا باستخدام جميع دواله التي ذكرناها في الجدول السابق.

مثال

Main.java
import java.util.*; // util هنا قمنا باستدعاء جميع الكلاسات و الإنترفيسات الموجودة في الحزمة
public class Main {
public static void main(String[] args) {
// ts إسمه TreeSet هنا قمنا بإنشاء كائن من الكلاس
TreeSet ts = new TreeSet();
// تعمدنا عدم ترتيب القيم من الأصغر إلى الأكبر حتى ترى أنه سيرتبهم بشكل تلقائي .ts هنا قمنا بإضافة 5 قيم في الكائن
ts.add(4);
ts.add(2);
ts.add(5);
ts.add(3);
ts.add(1);
// لاحظ أنه قام بترتيبهم من الأصغر إلى الأكبر .ts هنا قمنا بعرض عناصر الكائن
System.out.println("All elements: " + ts);
// ts هنا قمنا بعرض أول عنصر موجود في الكائن
System.out.println("First element: " + ts.first());
// ts هنا قمنا بعرض آخر عنصر موجود في الكائن
System.out.println("Last element: " + ts.last());
// '3' الموجودة قبل العنصر الذي يملك القيمة ts هنا قمنا بعرض جميع عناصر الكائن
System.out.println("headSet(3): " + ts.headSet(3));
// '3' إبتداءاً من العنصر الذي يملك القيمة ts هنا قمنا بعرض جميع عناصر الكائن
System.out.println("tailSet(3): " + ts.tailSet(3));
// 'إبتداءاً من العنصر الذي يملك القيمة '1' وصولاً إلى ما قبل العنصر الذي يملك القيمة '4 ts هنا قمنا بعرض جميع عناصر الكائن
System.out.println("Subset(1, 4) : " + ts.subSet(1, 4));
// هنا قمنا بعرض الإنترفيس المستخدم في مقارنة العناصر
System.out.println("Comparator(): " + ts.comparator());
}
}
import java.util.*; // util هنا قمنا باستدعاء جميع الكلاسات و الإنترفيسات الموجودة في الحزمة public class Main { public static void main(String[] args) { // ts إسمه TreeSet هنا قمنا بإنشاء كائن من الكلاس TreeSet ts = new TreeSet(); // تعمدنا عدم ترتيب القيم من الأصغر إلى الأكبر حتى ترى أنه سيرتبهم بشكل تلقائي .ts هنا قمنا بإضافة 5 قيم في الكائن ts.add(4); ts.add(2); ts.add(5); ts.add(3); ts.add(1); // لاحظ أنه قام بترتيبهم من الأصغر إلى الأكبر .ts هنا قمنا بعرض عناصر الكائن System.out.println("All elements: " + ts); // ts هنا قمنا بعرض أول عنصر موجود في الكائن System.out.println("First element: " + ts.first()); // ts هنا قمنا بعرض آخر عنصر موجود في الكائن System.out.println("Last element: " + ts.last()); // '3' الموجودة قبل العنصر الذي يملك القيمة ts هنا قمنا بعرض جميع عناصر الكائن System.out.println("headSet(3): " + ts.headSet(3)); // '3' إبتداءاً من العنصر الذي يملك القيمة ts هنا قمنا بعرض جميع عناصر الكائن System.out.println("tailSet(3): " + ts.tailSet(3)); // 'إبتداءاً من العنصر الذي يملك القيمة '1' وصولاً إلى ما قبل العنصر الذي يملك القيمة '4 ts هنا قمنا بعرض جميع عناصر الكائن System.out.println("Subset(1, 4) : " + ts.subSet(1, 4)); // هنا قمنا بعرض الإنترفيس المستخدم في مقارنة العناصر System.out.println("Comparator(): " + ts.comparator()); } }

سنحصل على النتيجة التالية عند التشغيل.

All elements : [1, 2, 3, 4, 5]
First element: 1
Last element : 5
headSet(3): [1, 2]
tailSet(3): [3, 4, 5]
Subset(1, 4): [1, 2, 3]
Comparator() : null
All elements : [1, 2, 3, 4, 5] First element: 1 Last element : 5 headSet(3): [1, 2] tailSet(3): [3, 4, 5] Subset(1, 4): [1, 2, 3] Comparator() : null