logo

NavigableSet ב-Java

ב-Java ה ניווט סט הוא תת-סוג של SortedSet מִמְשָׁק. זה מאפשר לנו לבצע פעולות שונות כמו השגת ההתאמות הקרובות ביותר עבור איטרציה בסדר יורד של רכיב נתון ואחרות. הוא מספק שיטות לנווט בין האלמנטים בסט.

mysql עזב להצטרף

לְדוּגמָה ממשק NavigableSet מאפשר לנו לנווט בערכה גם בסדר עולה וגם בסדר יורד בניגוד ל-SortedSet שתומך רק בסדר עולה. המחלקות שמיישמות את ממשק NavigableSet הן TreeSet  ו  ConcurrentSkipListSet

  • NavigableSet מרחיב את SortedSet ובכך מספק שיטות כמו first() last() headSet() tailSet() וכו'.
  • זה מאפשר לך לנווט בשני הכיוונים בסדר עולה ויורד
  • היישום הנפוץ ביותר של NavigableSet הוא TreeSet.

דוּגמָה: דוגמה זו מדגימה יצירת NavigableSet באמצעות TreeSet והוספת אלמנטים אליו הממיין אותם באופן אוטומטי בסדר עולה.



Java
// Java program to demonstrates  // the working of NavigableSet  import java.util.*; public class Geeks {  public static void main(String[] args) {  NavigableSet<Integer> ns = new TreeSet<>();  // Add elements to the set  ns.add(10);  ns.add(20);  ns.add(30);  ns.add(40);  ns.add(50);  System.out.println('Navigable Set: ' + ns);  } } 

תְפוּקָה
Navigable Set: [10 20 30 40 50] 


התרשים שלהלן מדגים את מבנה הירושה במסגרת האוסף של Java הקשור לסטים.

NavigableSet-in-Java-with-Examples' title=

TreeSet הוא מחלקה המיישמת ניווט סט אשר בתורו מרחיב את SortedSet אשר מרחיב מַעֲרֶכֶת .

הצהרת NavigableSet

ב-Java ניתן להכריז על ההצהרה של NavigableSet כ:

ניווט סטsetName;

הערה: ' Type' הוא סוג האלמנט בקבוצה (למשל מחרוזת שלם וכו') ו-setName הוא שם המשתנה.

יצירת אובייקטי NavigableSet

אנחנו לא יכולים ליצור NavigableSet ישירות מכיוון שזה ממשק. במקום זאת אנו משתמשים בכיתה כמו TreeSet שמיישם את זה. בעזרת גנריות נוכל להגדיר את סוג החפצים שהסט יאחסן. ניתן להגדיר סט בטוח מסוג זה כ:

ניווט סטset = New TreeSet();

דוּגמָה: דוגמה זו מדגימה כיצד להשתמש בשיטות שונות של NavigableSet כמו descedingSet() tailSet() lower() pollFirst() ו-polLast() כדי לתפעל ולנווט סט ממוין בסדר רגיל והן בסדר הפוך.

איזה חודשים יש ברבע 3
Java
// Java Program to demostrates the  // working of various methods of NavigableSet import java.util.NavigableSet; import java.util.TreeSet; public class Geeks {  public static void main(String[] args)  {  NavigableSet<Integer> ns = new TreeSet<>();  ns.add(0);  ns.add(1);  ns.add(2);  ns.add(3);  ns.add(4);  ns.add(5);  ns.add(6);  // Get a reverse view of the navigable set  NavigableSet<Integer> revNs = ns.descendingSet();  // Print the normal and reverse views  System.out.println('Normal order: ' + ns);  System.out.println('Reverse order: ' + revNs);  NavigableSet<Integer> t = ns.tailSet(3 true);  System.out.println('3 or more: ' + t);  System.out.println('lower(3): ' + ns.lower(3));  System.out.println('floor(3): ' + ns.floor(3));  System.out.println('higher(3): ' + ns.higher(3));  System.out.println('ceiling(3): ' + ns.ceiling(3));  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollLast(): ' + ns.pollLast());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('pollLast(): ' + ns.pollLast());  } } 

תְפוּקָה:

תְפוּקָה' loading='lazy' title=

ביצוע פעולות שונות ב-NavigableSet

1. הוספת אלמנטים: אנחנו יכולים להשתמש ב לְהוֹסִיף() שיטה להכנסת אלמנטים ל-NavigableSet. אלמנטים מאוחסנים בסדר הממוין, אין מותרות כפילויות וערכי null גם אינם מתקבלים על ידי NavigableSet.

דוּגמָה: דוגמה זו מדגימה הוספת אלמנטים ל-NavigableSet באמצעות add() שבה מתעלמים מכפילויות והאלמנטים ממוינים בסדר עולה.

Java
// Java Program to demonstrates the working of add() import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('A');  System.out.println('NavigableSet: ' + ts);  } } 

תְפוּקָה
NavigableSet: [A B C] 


2. גישה לאלמנטים: לאחר הוספת האלמנטים אם ברצוננו לגשת לאלמנטים נוכל להשתמש בשיטות מובנות כמו מכיל() רֵאשִׁית() אַחֲרוֹן() וכו'

דוּגמָה: דוגמה זו מדגימה הוספת אלמנטים ל-NavigableSet בדיקת קיומו של אלמנט ואחזור האלמנטים הראשונים והאחרונים.

Java
// Java program to demonstrates the  // working of contains() first() and last() method import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('A');  System.out.println('NavigableSet: ' + ts);  String s = 'D';  // Check if the above string exists in  // the NavigableSet or not  System.out.println('D exists in the NavigableSet?: '  + ts.contains(s));  // Print the first element in  // the NavigableSet  System.out.println('First Element of NavigableSet: '   + ts.first());  // Print the last element in  // the NavigableSet  System.out.println('Last Element of NavigableSet: '   + ts.last());  } } 

תְפוּקָה
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C 


3. הסרת אלמנטים: ניתן להסיר את הערכים מה-NavigableSet באמצעות ה- לְהַסִיר() pollFirst() pollLast() .

דוּגמָה: דוגמה זו מדגימה הסרת אלמנטים מה-NavigableSet.

כיצד להמיר מint למחרוזת ב-java
Java
// Java Program to demonstrates the working of remove() // pollFirst() and pollLast() method import java.io.*; import java.util.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('B');  ts.add('D');  ts.add('E');  System.out.println('NavigableSet: ' + ts);  // Removing the element b  ts.remove('B');  System.out.println('After removing element ' + ts);  // Remove the First element of TreeSet  ts.pollFirst();  System.out.println(  'After the removal of First Element ' + ts);  // Remove the Last element of TreeSet  ts.pollLast();  System.out.println(  'After the removal of Last Element ' + ts);  } } 

תְפוּקָה
NavigableSet: [A B C D E] After removing element [A C D E] After the removal of First Element [C D E] After the removal of Last Element [C D] 


4. אלמנטים חוזרים: ישנן דרכים שונות לבצע איטרציה דרך ה- NavigableSet. המפורסם ביותר הוא להשתמש ב-  משופר עבור לולאה.

דוּגמָה: דוגמה זו מדגימה הוספת אלמנטים ל- NavigableSet ואיטרציה דרכו בסדר עולה.

Java
// Java Program to iterate through NavigableSet import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('C');  ts.add('D');  ts.add('E');  ts.add('A');  ts.add('B');  ts.add('Z');  // Iterating though the NavigableSet  for (String i : ts)  System.out.print(i + ' ');  } } 

תְפוּקָה
A B C D E Z 

שיטות

להלן השיטות הקיימות בממשק NavigableSet. 

שיטות

תֵאוּר

 תקרה (E ה) מחזירה את האלמנט הקטן ביותר בקבוצה הזו גדול או שווה לרכיב הנתון או null אם אין אלמנט כזה.
descendingIterator() מחזירה איטרטור מעל האלמנטים בקבוצה זו בסדר יורד.
descendingSet() מחזירה תצוגת סדר הפוך של הרכיבים הכלולים בערכה זו.
קומה (E ה) מחזירה את האלמנט הגדול ביותר בקבוצה הזו קטן או שווה לאלמנט הנתון או null אם אין אלמנט כזה.
אוזניות (E toElement) מחזירה תצוגה של החלק של קבוצה זו שהרכיבים שלו קטנים בהחלט מ-toElement.
אוזניות (כולל E toElement בוליאני) מחזירה תצוגה של החלק של קבוצה זו שהרכיבים שלו קטנים מ-(או שווים אם הכל זה נכון) ל-Element.
גבוה יותר (E e) מחזירה את האלמנט הקטן ביותר בקבוצה הזו גדול בהחלט מהאלמנט הנתון או null אם אין אלמנט כזה.
iterator() מחזירה איטרטור מעל האלמנטים בקבוצה זו בסדר עולה.
נמוך(E ה) מחזירה את האלמנט הגדול ביותר בקבוצה הזו פחות מהאלמנט הנתון או null אם אין אלמנט כזה.
pollFirst() מאחזר ומסיר את האלמנט הראשון (הנמוך ביותר) או מחזיר null אם קבוצה זו ריקה.
pollLast() מאחזר ומסיר את האלמנט האחרון (הגבוה ביותר) או מחזיר null אם קבוצה זו ריקה.

subSet(E fromElement boolean

מכולל E לאלמנט בוליאני לכולל)

מחזירה תצוגה של החלק של קבוצה זו שהרכיבים שלו נעים בין מ-Element ל-toElement.
subset(E fromElement E toElement) מחזירה תצוגה של החלק של קבוצה זו שהרכיבים שלו נעים בין מ-Element inclusive ל-toElement בלעדי.
tailSet(E fromElement)מחזירה תצוגה של החלק של קבוצה זו שהרכיבים שלו גדולים או שווים ל-fromElement.
tailSet (E fromElement boolean inclusive)מחזירה תצוגה של החלק של קבוצה זו שהרכיבים שלו גדולים מ-(או שווים לאם כולל זה נכון) מ-Element.

                                                                                                                                              
שיטות בירושה מממשק java.util.SortedSet

שִׁיטָה

תֵאוּר

comparator()  שיטה זו מחזירה את המשווה המשמש לסדר האלמנטים בקבוצה זו או null אם קבוצה זו משתמשת בסדר הטבעי של האלמנטים שלה.
רֵאשִׁית() שיטה זו מחזירה את האלמנט הראשון (הנמוך ביותר) הקיים בקבוצה זו.
אַחֲרוֹן() שיטה זו מחזירה את האלמנט האחרון (הגבוה ביותר) הקיים בקבוצה.
מפצל()יוצר ספליטרטור על האלמנטים בסט ממוין זה.

שיטות בירושה מממשק java.util.Set

שִׁיטָה

mysql לא שווה

תֵאוּר

add(אלמנט) שיטה זו משמשת להוספת אלמנט מסוים לסט. הפונקציה מוסיפה את האלמנט רק אם האלמנט שצוין לא קיים כבר בסט, אחרת הפונקציה מחזירה False אם האלמנט כבר קיים ב-Set.
addAll(אוסף)  שיטה זו משמשת לצרף את כל האלמנטים מהאוסף המוזכר לסט הקיים. האלמנטים מתווספים באופן אקראי מבלי לבצע שום סדר ספציפי.
בָּרוּר()   שיטה זו משמשת כדי להסיר את כל האלמנטים מהסט אך לא למחוק את הסט. ההפניה לסט עדיין קיימת.
מכיל (אלמנט) שיטה זו משמשת כדי לבדוק אם רכיב מסוים קיים בסט או לא.
מכיל הכל (אוסף) 

שיטה זו משמשת כדי לבדוק אם הסט מכיל את כל האלמנטים הקיימים באוסף הנתון או לא.

שיטה זו מחזירה true אם הסט מכיל את כל האלמנטים ומחזירה false אם אחד מהאלמנטים חסר.

שווה() משווה את האובייקט שצוין עם קבוצה זו לצורך שוויון.
hashCode()  שיטה זו משמשת כדי לקבל את ערך hashCode עבור מופע זה של הסט. הוא מחזיר ערך שלם שהוא ערך hashCode עבור מופע זה של הסט.
isEmpty() שיטה זו משמשת כדי לבדוק אם NavigableSet ריק או לא.
להסיר (אלמנט) שיטה זו משמשת להסרת האלמנט הנתון מהסט. שיטה זו מחזירה True אם האלמנט שצוין קיים ב-Set אחרת היא מחזירה False.
removeAll(collection) שיטה זו משמשת להסרת כל האלמנטים מהאוסף שנמצאים בסט. שיטה זו מחזירה אמת אם קבוצה זו השתנתה כתוצאה מהקריאה.
retainAll (אוסף) שיטה זו משמשת לשמירה על כל האלמנטים מהסט המוזכרים באוסף הנתון. שיטה זו מחזירה אמת אם קבוצה זו השתנתה כתוצאה מהקריאה.
גוֹדֶל() שיטה זו משמשת כדי לקבל את גודל הסט. זה מחזיר ערך שלם שמסמל את מספר האלמנטים.
toArray() שיטה זו משמשת ליצירת מערך של אותם אלמנטים כמו זה של הסט.
 toArray(T[] a)מחזירה מערך המכיל את כל האלמנטים בקבוצה זו; סוג זמן הריצה של המערך המוחזר הוא זה של המערך שצוין.

שיטות המוצהרות בממשק java.util.Collection

שִׁיטָהתֵאוּר
parallelStream()מחזיר זרם אולי מקביל עם אוסף זה כמקור שלו.
removeIf(Predicateלְסַנֵן)מסיר את כל המרכיבים של אוסף זה שעומדים בבסיס הנתון.
זֶרֶם()מחזיר זרם רציף עם אוסף זה כמקור שלו.
toArray?(IntFunctionגֵנֵרָטוֹר)מחזיר מערך המכיל את כל האלמנטים באוסף זה באמצעות פונקציית המחולל שסופקה כדי להקצות את המערך המוחזר.

שיטות המוצהרות בממשק java.lang.Iterable

שִׁיטָהתֵאוּר
forEach(Consumerפְּעוּלָה) מבצע את הפעולה הנתונה עבור כל רכיב של ה-Iterable עד שכל הרכיבים עברו עיבוד או שהפעולה זורקת חריגה.