I Java NavigableSet är en undertyp av SorteradSet gränssnitt. Det tillåter oss att utföra olika operationer som att få de närmaste matchningarna för ett givet element i fallande ordning iteration och andra. Den tillhandahåller metoder för att navigera genom elementen i uppsättningen.
Till exempel NavigableSet-gränssnittet låter oss navigera genom setet i både stigande och fallande ordning till skillnad från SortedSet som bara stöder stigande ordning. Klasserna som implementerar NavigableSet-gränssnittet är Träduppsättning och ConcurrentSkipListSet
- NavigableSet utökar SortedSet och tillhandahåller således metoder som first() last() headSet() tailSet() etc.
- Det låter dig navigera i både stigande och fallande ordning
- Den vanligaste implementeringen av NavigableSet är TreeSet.
Exempel: Det här exemplet visar att man skapar ett NavigableSet med hjälp av TreeSet och lägger till element till det som automatiskt sorterar dem i stigande ordning.
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]
c#
Diagrammet nedan visar arvsstrukturen i Javas samlingsramverk relaterat till set.
TreeSet är en klass som implementerar NavigableSet vilket i sin tur förlänger SortedSet som förlänger Uppsättning .
Deklaration av NavigableSet
I Java kan deklarationen för NavigableSet deklareras som:
NavigableSet
setName;
Obs: ' Type' är typen av element i mängden (t.ex. heltalssträng etc) och setName är namnet på variabeln.
Skapa NavigableSet-objekt
Vi kan inte skapa ett NavigableSet direkt eftersom det är ett gränssnitt. Istället använder vi en klass som Träduppsättning som implementerar det. Med hjälp av generika kan vi definiera vilken typ av objekt som uppsättningen kommer att lagra. Denna typsäkra uppsättning kan definieras som:
NavigableSet
set = nytt träduppsättning ();
Exempel: Det här exemplet visar hur man använder olika metoder för NavigableSet som descedingSet() tailSet() lower() pollFirst() och pollLast() för att manipulera och navigera i en sorterad uppsättning i både normal och omvänd ordning.
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:
Utföra olika operationer på NavigableSet
1. Lägga till element: Vi kan använda tillägga() metod för att infoga element i NavigableSet. Element lagras i sorterad ordning inga dubbletter är tillåtna och nollvärden accepteras inte heller av NavigableSet.
Exempel: Det här exemplet visar hur man lägger till element i en NavigableSet med add() där dubbletter ignoreras och elementen sorteras i stigande ordning.
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. Åtkomst till element: Efter att ha lagt till elementen om vi vill komma åt elementen kan vi använda inbyggda metoder som innehåller() första() sista() etc.
Exempel: Det här exemplet visar hur man lägger till element i en NavigableSet, kontrollerar om ett element finns och hämtar de första och sista elementen.
numpy standardavvikelseJava
// 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. Ta bort element: Värdena kan tas bort från NavigableSet med hjälp av ta bort() pollFirst() pollLast() .
Exempel: Det här exemplet visar hur man tar bort element från NavigableSet.
np.linspaceJava
// 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. Itererande element: Det finns olika sätt att iterera genom NavigableSet. Den mest kända är att använda förbättrad för loop.
Exempel: Det här exemplet visar att man lägger till element i en NavigableSet och itererar genom den i stigande ordning.
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öljande är metoderna som finns i NavigableSet-gränssnittet.
Metoder | Beskrivning |
|---|---|
| tak(E e) | Returnerar det minsta elementet i denna uppsättning större än eller lika med det givna elementet eller null om det inte finns något sådant element. |
| descendingIterator() | Returnerar en iterator över elementen i denna uppsättning i fallande ordning. |
| descendingSet() | Returnerar en omvänd ordningsvy av elementen i denna uppsättning. |
| golv(E e) | Returnerar det största elementet i denna uppsättning mindre än eller lika med det givna elementet eller null om det inte finns något sådant element. |
| headset (E toElement) | Returnerar en vy av den del av denna uppsättning vars element är strikt mindre än toElement. |
| headset (E toElement boolean inklusive) | Returnerar en vy av den del av denna uppsättning vars element är mindre än (eller lika med om inklusive är sant) tillElement. |
| högre(E e) | Returnerar det minsta elementet i denna uppsättning strikt större än det givna elementet eller null om det inte finns något sådant element. |
| iterator() | Returnerar en iterator över elementen i denna uppsättning i stigande ordning. |
| lägre(E e) | Returnerar det största elementet i denna uppsättning strikt mindre än det givna elementet eller null om det inte finns något sådant element. |
| pollFirst() | Hämtar och tar bort det första (lägsta) elementet eller returnerar null om denna uppsättning är tom. |
| pollLast() | Hämtar och tar bort det sista (högsta) elementet eller returnerar null om denna uppsättning är tom. |
delmängd(E fromElement boolean fromInclusive E toElement boolean toInclusive) | Returnerar en vy av den del av denna uppsättning vars element sträcker sig från element till element. |
| delmängd(E fromElement E toElement) | Returnerar en vy av den del av denna uppsättning vars element sträcker sig från allt från Element inklusive till till Element exklusivt. |
| tailSet(E fromElement) | Returnerar en vy av den del av denna uppsättning vars element är större än eller lika med fromElement. |
| tailSet(E fromElement boolean inklusive) | Returnerar en vy av den del av denna uppsättning vars element är större än (eller lika med om inklusive är sant) frånElement. |
Metoder som ärvts från gränssnittet java.util.SortedSet
Metod | Beskrivning |
|---|---|
| komparator() | Denna metod returnerar komparatorn som används för att beställa elementen i denna uppsättning eller null om denna uppsättning använder den naturliga ordningen av dess element. |
| första() | Denna metod returnerar det första (lägsta) elementet som finns i denna uppsättning. |
| sista() | Denna metod returnerar det sista (högsta) elementet som finns i uppsättningen. |
| spliterator() | Skapar en Spliterator över elementen i denna sorterade uppsättning. |
Metoder som ärvts från Interface java.util.Set
Metod java-program | Beskrivning |
|---|---|
| add(element) | Denna metod används för att lägga till ett specifikt element till uppsättningen. Funktionen lägger bara till elementet om det angivna elementet inte redan finns i uppsättningen annars returnerar funktionen False om elementet redan finns i uppsättningen. |
| addAll (samling) | Denna metod används för att lägga till alla element från den nämnda samlingen till den befintliga uppsättningen. Elementen läggs till slumpmässigt utan att följa någon specifik ordning. |
| rensa() | Denna metod används för att ta bort alla element från uppsättningen men inte ta bort uppsättningen. Referensen för uppsättningen finns fortfarande kvar. |
| innehåller(element) | Denna metod används för att kontrollera om ett specifikt element finns i uppsättningen eller inte. |
| innehåller alla (samling) | Denna metod används för att kontrollera om uppsättningen innehåller alla element som finns i den givna samlingen eller inte. Denna metod returnerar true om uppsättningen innehåller alla element och returnerar false om något av elementen saknas. |
| lika() | Jämför det angivna objektet med denna uppsättning för likhet. |
| hashCode() | Denna metod används för att få hashCode-värdet för denna instans av setet. Den returnerar ett heltalsvärde som är hashCode-värdet för denna instans av uppsättningen. |
| isEmpty() | Denna metod används för att kontrollera om en NavigableSet är tom eller inte. |
| remove(element) | Denna metod används för att ta bort det givna elementet från uppsättningen. Denna metod returnerar True om det angivna elementet finns i uppsättningen annars returnerar den False. |
| removeAll (samling) | Denna metod används för att ta bort alla element från samlingen som finns i uppsättningen. Denna metod returnerar sant om denna uppsättning ändras som ett resultat av anropet. |
| retainAll (samling) | Denna metod används för att behålla alla element från uppsättningen som nämns i den givna samlingen. Denna metod returnerar sant om denna uppsättning ändras som ett resultat av anropet. |
| storlek() | Denna metod används för att få storleken på uppsättningen. Detta returnerar ett heltalsvärde som anger antalet element. |
| toArray() | Denna metod används för att bilda en array av samma element som den i Setet. |
| toArray(T[] a) | Returnerar en array som innehåller alla element i denna uppsättning; körtidstypen för den returnerade arrayen är den för den angivna arrayen. |
Metoder som deklareras i Interface java.util.Collection
| Metod | Beskrivning |
|---|---|
| parallellStream() | Returnerar en möjligen parallell ström med den här samlingen som källa. |
| removeIf(Predikat super E>filtrera) | Tar bort alla element i den här samlingen som uppfyller det givna predikatet. |
| strömma() | Returnerar en sekventiell ström med den här samlingen som källa. |
| toArray?(IntFunction | Returnerar en array som innehåller alla elementen i denna samling med hjälp av den medföljande generatorfunktionen för att allokera den returnerade arrayen. |
Metoder deklarerade i Interface java.lang.Iterable
| Metod | Beskrivning |
|---|---|
| forEach(Consumer super T>handling) | Utför den givna åtgärden för varje element i Iterable tills alla element har bearbetats eller åtgärden ger ett undantag. |