English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

تحكم في العملية Java

مجموعة Java

موجه Java (I)

موجه Java (II)

موجه Java (III)

معالجة الاستثناءات Java

قائمة Java (List)

مجموعة Queue Java (الصف)

مجموعة Map Java

مجموعة Set Java

Java إدخال/إخراج (I/O)

Java Reader/Writer

مواضيع أخرى في Java

واجهة Java NavigableSet

في هذا الدرس، سنتعلم من خلال مثال عن واجهة Java NavigableSet وميزاتها.

يوفر واجهة NavigableSet في Java Collections framework وظائف التنقل بين عناصر المجموعة.

يُعتبرنوع من SortedSet.

الفئات التي تستمر في NavigableSet

للاستفادة من وظائف واجهة NavigableSet، نحتاج إلى استخدام الفئة التي تستمر في NavigableSet وتتمثل في TreeSet.

كيفية استخدام NavigableSet؟

للاستفادة من وظائف واجهة NavigableSet، نحتاج إلى استخدام فئة TreeSet التي تستمر في NavigableSet.

// تنفيذ SortedSet لفئة TreeSet
NavigableSet<String> numbers = new TreeSet<>();

في هذا المكان، قمنا بإنشاء مجموعة قابلة للتنقل من فئة TreeSet تُدعى numbers.

طرق NavigableSet

يُعتبر NavigableSet نوعًا من SortedSet. هذا لأن NavigableSet يستمر في SortedSet.

لذلك، جميع طرق SortedSet متاحة أيضًا في NavigableSet. للحصول على معرفة هذه الطرق، يرجى زيارةJava SortedSet.

لكن، في NavigableSet، تم تعريف بعض طرق SortedSet (headSet()، tailSet() و subSet()) بشكل مختلف.

لنلقي نظرة على كيفية تعريف هذه الطرق في NavigableSet.

headSet(element,booleanValue)

يستعيد headSet() كافة العناصر قبل العنصر المحدد من المجموعة القابلة للتنقل (تم تمريرها كمعامل).

الم 参数 booleanValue هو اختياري. القيمة الافتراضية هي false.

إذا كان قيمة booleanValue هي true، فإن هذه الطريقة تعود بكافة العناصر قبل العنصر المحدد، بما في ذلك العنصر المحدد.

tailSet(element,booleanValue)

يستعيد tailSet() كافة العناصر بعد العنصر المحدد (تم تمريره كمعامل) من المجموعة القابلة للتنقل، بما في ذلك العنصر المحدد.

الم 参数 booleanValue هو اختياري. القيمة الافتراضية هي true.

إذا كان booleanValue غير صحيح، فإن هذه الطريقة تعود بكافة العناصر بعد العنصر المحدد، باستثناء العنصر المحدد.

subSet(e1,bv1,e2,bv2)

يعيد طريقة subSet جميع العناصر بين e1 وe2، بما في ذلك e1.

bv1 وbv2 هما متغيرات اختيارية.bv1 له قيمة افتراضية true، وbv2 له قيمة افتراضية false.

إذا تم تمرير false كbv1، فإن هذا الخيار يعيد جميع العناصر بين e1 وe2، بدون e1.

إذا تم تمرير true كbv2، فإن هذا الخيار يعيد جميع العناصر بين e1 وe2، بما في ذلك e1.

يقدم NavigableSet طرقًا يمكن استخدامها للتنقل بين عناصره.

  • DescendingSet() - عكس ترتيب العناصر في المجموعة

  • DescendingIterator() - إرجاع م迭代ر يمكن استخدامه للاستدلال على المجموعة بالترتيب المعكوس

  • ceiling() - إرجاع أصغر العناصر الأكبر أو المساوية للعنصر المحدد

  • floor() - إرجاع أكبر العناصر الأقل أو المساوية للعنصر المحدد

  • Higher() - إرجاع أصغر العناصر الأكبر من العنصر المحدد

  • lower() - إرجاع أكبر العناصر الأقل من العنصر المحدد

  • pollFirst() - إزالة وإرجاع العنصر الأول من المجموعة

  • pollLast() - إزالة وإرجاع العنصر الأخير من المجموعة

تحقيق NavigableSet في TreeSet

import java.util.NavigableSet;
import java.util.TreeSet;
class Main {
    public static void main(String[] args) {
        //使用TreeSet创建NavigableSet
        NavigableSet<Integer> numbers = new TreeSet<>();
        //向集合中插入元素
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("NavigableSet: " + numbers);
        //访问第一个元素
        int firstElement = numbers.first();
        System.out.println("第一个元素: " + firstElement);
        //访问最后一个元素
        int lastElement = numbers.last();
        System.out.println("العنصر الأخير: " + lastElement);
        //حذف العنصر الأول
        int number1 = numbers.pollFirst();
        System.out.println("حذف العنصر الأول: " + number1);
        //حذف العنصر الأخير
        int number2 = numbers.pollLast();
        System.out.println("حذف العنصر الأخير: " + number2);
    }
}

نتائج الإخراج

NavigableSet: [1, 2, 3]
العنصر الأول: 1
العنصر الأخير: 3
حذف العنصر الأول: 1
حذف العنصر الأخير: 3

للحصول على معلومات إضافية عن TreeSet، يرجى زيارةJava TreeSet.

بما أننا نعرف واجهة NavigableSet، سنستخدم فئة TreeSet لدراسة تنفيذها.