logo

NavigableSet i Java

I Java Navigerbart sæt er en undertype af Sorteret Sæt interface. Det giver os mulighed for at udføre forskellige operationer som f.eks. at finde de nærmeste matcher for et givet element i faldende rækkefølge iteration og andre. Det giver metoder til at navigere gennem elementerne i sættet.

For eksempel NavigableSet-grænsefladen giver os mulighed for at navigere gennem sættet i både stigende og faldende rækkefølge i modsætning til SortedSet, som kun understøtter den stigende rækkefølge. Klasserne, der implementerer NavigableSet-grænsefladen, er Træsæt  og  ConcurrentSkipListSet

  • NavigableSet udvider SortedSet og giver således metoder som first() last() headSet() tailSet() osv.
  • Det giver dig mulighed for at navigere i både stigende og faldende rækkefølge
  • Den mest almindelige implementering af NavigableSet er TreeSet.

Eksempel: Dette eksempel viser oprettelse af et NavigableSet ved hjælp af TreeSet og tilføjelse af elementer til det, som automatisk sorterer dem i stigende rækkefølge.



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);  } } 

Produktion
Navigable Set: [10 20 30 40 50] 


Diagrammet nedenfor viser arvestrukturen i Javas samlingsramme relateret til sæt.

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

TreeSet er en klasse, der implementerer Navigerbart sæt som igen forlænger SortedSet som forlænger Sæt .

Erklæring om NavigableSet

I Java kan erklæringen om NavigableSet erklæres som:

Navigerbart sætsætnavn;

Bemærk: ' Type' er typen af ​​element i sættet (f.eks. heltalsstreng osv.), og setName er navnet på variablen.

Oprettelse af NavigableSet-objekter

Vi kan ikke oprette et NavigableSet direkte, da det er en grænseflade. I stedet bruger vi en klasse som Træsæt der implementerer det. Ved hjælp af generiske artikler kan vi definere den type objekter, som sættet skal gemme. Dette typesikre sæt kan defineres som:

js settimeout

Navigerbart sætsæt = nyt træsæt();

Eksempel: Dette eksempel viser, hvordan man bruger forskellige metoder til NavigableSet som descedingSet() tailSet() lower() pollFirst() og pollLast() til at manipulere og navigere i et sorteret sæt i både normal og omvendt rækkefølge.

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());  } } 

Produktion:

Produktion' loading='lazy' title=

Udførelse af forskellige handlinger på NavigableSet

1. Tilføjelse af elementer: Vi kan bruge tilføje() metode til at indsætte elementer i NavigableSet. Elementer gemmes i sorteret rækkefølge, ingen dubletter er tilladt, og null-værdier accepteres heller ikke af NavigableSet.

Eksempel: Dette eksempel demonstrerer tilføjelse af elementer til et NavigableSet ved hjælp af add(), hvor dubletter ignoreres, og elementerne sorteres i stigende rækkefølge.

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);  } } 

Produktion
NavigableSet: [A B C] 


2. Adgang til elementer: Efter tilføjelse af elementerne, hvis vi ønsker at få adgang til elementerne, kan vi bruge indbyggede metoder som indeholder() først() sidst() osv.

Eksempel: Dette eksempel viser tilføjelse af elementer til et NavigableSet, der kontrollerer for et elements eksistens og henter de første og sidste elementer.

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());  } } 

Produktion
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C 


3. Fjernelse af elementer: Værdierne kan fjernes fra NavigableSet ved hjælp af fjerne() pollFirst() pollLast() .

Eksempel: Dette eksempel viser fjernelse af elementer fra NavigableSet.

panda smelter
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);  } } 

Produktion
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. Itererende elementer: Der er forskellige måder at gentage gennem NavigableSet. Den mest berømte er at bruge  forbedret til loop.

Eksempel: Dette eksempel viser tilføjelse af elementer til et NavigableSet og iteration gennem det i stigende rækkefølge.

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 + ' ');  } } 

Produktion
A B C D E Z 

Metoder

Følgende er de metoder, der findes i NavigableSet-grænsefladen. 

Metoder

Beskrivelse

 loft(E e) Returnerer det mindste element i dette sæt større end eller lig med det givne element eller null, hvis der ikke er et sådant element.
descendingIterator() Returnerer en iterator over elementerne i dette sæt i faldende rækkefølge.
descendingSet() Returnerer en omvendt rækkefølge af elementerne i dette sæt.
gulv(E e) Returnerer det største element i dette sæt mindre end eller lig med det givne element eller null, hvis der ikke er et sådant element.
headset (E toElement) Returnerer en visning af den del af dette sæt, hvis elementer er strengt mindre end toElement.
headset (E toElement boolean inklusive) Returnerer en visning af den del af dette sæt, hvis elementer er mindre end (eller lig med, hvis inklusive er sandt) tilElement.
højere(E e) Returnerer det mindste element i dette sæt strengt taget større end det givne element eller null, hvis der ikke er et sådant element.
iterator() Returnerer en iterator over elementerne i dette sæt i stigende rækkefølge.
lavere(E e) Returnerer det største element i dette sæt strengt mindre end det givne element eller null, hvis der ikke er et sådant element.
pollFirst() Henter og fjerner det første (laveste) element eller returnerer null, hvis dette sæt er tomt.
pollLast() Henter og fjerner det sidste (højeste) element eller returnerer null, hvis dette sæt er tomt.

subSet(E fromElement boolean

fra Inclusive E til Element boolean til Inclusive)

Returnerer en visning af den del af dette sæt, hvis elementer spænder fra fromElement til toElement.
delsæt(E fraElement E tilElement) Returnerer en visning af den del af dette sæt, hvis elementer strækker sig fra fra Element inklusive til til Eksklusivt Element.
halesæt (E fra Element)Returnerer en visning af den del af dette sæt, hvis elementer er større end eller lig med fromElement.
tailSet (E fra Element boolean inklusive)Returnerer en visning af den del af dette sæt, hvis elementer er større end (eller lig med, hvis inklusive er sandt) fra Element.

                                                                                                                                              
Metoder arvet fra Interface java.util.SortedSet

Metode

Beskrivelse

komparator()  Denne metode returnerer komparatoren, der bruges til at bestille elementerne i dette sæt, eller nul, hvis dette sæt bruger den naturlige rækkefølge af dets elementer.
først() Denne metode returnerer det første (laveste) element, der findes i dette sæt.
sidst() Denne metode returnerer det sidste (højeste) element til stede i sættet.
splitter()Opretter en Spliterator over elementerne i dette sorterede sæt.

Metoder arvet fra Interface java.util.Set

Metode

Beskrivelse

tilføje(element) Denne metode bruges til at tilføje et bestemt element til sættet. Funktionen tilføjer kun elementet, hvis det angivne element ikke allerede er til stede i sættet, ellers returnerer funktionen False, hvis elementet allerede er til stede i sættet.
addAll (samling)  Denne metode bruges til at tilføje alle elementerne fra den nævnte samling til det eksisterende sæt. Elementerne tilføjes tilfældigt uden at følge nogen specifik rækkefølge.
klar()   Denne metode bruges til at fjerne alle elementer fra sættet, men ikke til at slette sættet. Referencen til sættet eksisterer stadig.
indeholder (element) Denne metode bruges til at kontrollere, om et specifikt element er til stede i sættet eller ej.
indeholder alle (samling) 

Denne metode bruges til at kontrollere, om sættet indeholder alle de elementer, der er til stede i den givne samling eller ej.

Denne metode returnerer sand, hvis sættet indeholder alle elementerne, og returnerer falsk, hvis nogen af ​​elementerne mangler.

er lig med () Sammenligner det angivne objekt med dette sæt for lighed.
hashCode()  Denne metode bruges til at få hashCode-værdien for denne forekomst af sættet. Det returnerer en heltalsværdi, som er hashCode-værdien for denne forekomst af sættet.
er tom() Denne metode bruges til at kontrollere, om et NavigableSet er tomt eller ej.
fjerne (element) Denne metode bruges til at fjerne det givne element fra sættet. Denne metode returnerer True, hvis det angivne element er til stede i sættet, ellers returnerer den False.
removeAll (samling) Denne metode bruges til at fjerne alle de elementer fra samlingen, som er til stede i sættet. Denne metode returnerer sand, hvis dette sæt ændres som følge af opkaldet.
retainAll (samling) Denne metode bruges til at bevare alle de elementer fra sættet, som er nævnt i den givne samling. Denne metode returnerer sand, hvis dette sæt ændres som følge af opkaldet.
størrelse() Denne metode bruges til at få størrelsen på sættet. Dette returnerer en heltalsværdi, som angiver antallet af elementer.
toArray() Denne metode bruges til at danne en række af de samme elementer som sættet.
 toArray(T[] a)Returnerer en matrix, der indeholder alle elementerne i dette sæt; runtime-typen for den returnerede matrix er den for den angivne matrix.

Metoder erklæret i Interface java.util.Collection

MetodeBeskrivelse
parallelStream()Returnerer en muligvis parallel strøm med denne samling som kilde.
removeIf(prædikatfilter)Fjerner alle de elementer i denne samling, der opfylder det givne prædikat.
strøm()Returnerer en sekventiel stream med denne samling som kilde.
toArray?(IntFunctiongenerator)Returnerer et array, der indeholder alle elementerne i denne samling, ved hjælp af den medfølgende generatorfunktion til at allokere det returnerede array.

Metoder erklæret i Interface java.lang.Iterable

MetodeBeskrivelse
for Hver (Forbrugerhandling) Udfører den givne handling for hvert element i Iterable, indtil alle elementer er blevet behandlet, eller handlingen kaster en undtagelse.