V Javi je NavigableSet je podvrsta SortedSet vmesnik. Omogoča nam izvajanje različnih operacij, kot je pridobivanje najbližjih ujemanj za dani element v padajočem vrstnem redu ponovitev in druge. Ponuja metode za krmarjenje po elementih v nizu.
Na primer Vmesnik NavigableSet nam omogoča krmarjenje po nizu v naraščajočem in padajočem vrstnem redu, za razliko od SortedSet, ki podpira samo naraščajoči vrstni red. Razredi, ki izvajajo vmesnik NavigableSet, so TreeSet in ConcurrentSkipListSet
- NavigableSet razširja SortedSet in tako zagotavlja metode, kot so first() last() headSet() tailSet() itd.
- Omogoča navigacijo v obe smeri v naraščajočem in padajočem vrstnem redu
- Najpogostejša izvedba NavigableSet je TreeSet.
primer: Ta primer prikazuje ustvarjanje NavigableSet z uporabo TreeSet in dodajanje elementov vanj, ki jih samodejno razvrsti v naraščajočem vrstnem redu.
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); } }
Izhod
Navigable Set: [10 20 30 40 50]
Spodnji diagram prikazuje strukturo dedovanja v zbirnem ogrodju Jave, povezano z nizi.
kaj je 10 od 60
TreeSet je razred, ki izvaja NavigableSet ki posledično razširja SortedSet, ki razširja Set .
Deklaracija NavigableSet
V Javi je deklaracijo NavigableSet mogoče deklarirati kot:
NavigableSet
setName; narediti skript izvršljiv
Opomba: ' Vrsta' je vrsta elementa v nizu (npr. celoštevilski niz itd.), setName pa je ime spremenljivke.
Ustvarjanje objektov NavigableSet
NavigableSet ne moremo ustvariti neposredno, ker je vmesnik. Namesto tega uporabljamo razred, kot je TreeSet ki ga izvaja. S pomočjo generikov lahko določimo vrsto objektov, ki jih bo množica shranjevala. Ta tipsko varen niz je mogoče opredeliti kot:
NavigableSet
set = nov TreeSet ();
primer: Ta primer prikazuje, kako uporabiti različne metode NavigableSet, kot je descedingSet() tailSet() lower() pollFirst() in pollLast() za manipulacijo in krmarjenje po razvrščenem nizu v običajnem in obratnem vrstnem redu.
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()); } }
Izhod:
Izvajanje različnih operacij na NavigableSet
1. Dodajanje elementov: Lahko uporabimo dodaj() metoda za vstavljanje elementov v NavigableSet. Elementi so shranjeni v razvrščenem vrstnem redu, dvojniki niso dovoljeni in NavigableSet prav tako ne sprejema ničelnih vrednosti.
primer: Ta primer prikazuje dodajanje elementov v NavigableSet z uporabo add(), kjer so dvojniki prezrti in so elementi razvrščeni v naraščajočem vrstnem redu.
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); } }
Izhod
NavigableSet: [A B C]
2. Dostop do elementov: Po dodajanju elementov, če želimo dostopati do elementov, lahko uporabimo vgrajene metode, kot je vsebuje() prvi() zadnji() itd.
hrithik roshan
primer: Ta primer prikazuje dodajanje elementov v NavigableSet, preverjanje obstoja elementa in pridobivanje prvega in zadnjega elementa.
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()); } }
Izhod
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C
3. Odstranjevanje elementov: Vrednosti lahko odstranite iz NavigableSet z uporabo odstrani() pollFirst() pollLast() .
primer: Ta primer prikazuje odstranjevanje elementov iz NavigableSet.
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); } }
Izhod
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. Ponavljajoči se elementi: Obstaja več načinov za ponavljanje skozi NavigableSet. Najbolj znana je uporaba izboljšana zanka for.
primer: Ta primer prikazuje dodajanje elementov v NavigableSet in ponavljanje po njem v naraščajočem vrstnem redu.
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 + ' '); } }
Izhod
A B C D E Z
Metode
Sledijo metode, ki so prisotne v vmesniku NavigableSet.
Metode | Opis Igralka Rubina Dilaik |
|---|---|
| strop (E e) | Vrne najmanjši element v tem nizu, ki je večji ali enak danemu elementu ali nič, če takega elementa ni. |
| padajočiIterator() | Vrne iterator nad elementi v tem nizu v padajočem vrstnem redu. |
| descendingSet() | Vrne pogled v obratnem vrstnem redu elementov v tem nizu. |
| nadstropje (E e) | Vrne največji element v tem nizu, ki je manjši ali enak danemu elementu ali nič, če takega elementa ni. |
| slušalke (E toElement) | Vrne pogled na del tega niza, katerega elementi so strogo manjši od toElement. |
| slušalke (vključno z logično vrednostjo E toElement) | Vrne pogled na del tega nabora, katerega elementi so manjši od (ali enaki, če je inclusive true) toElement. |
| višji (E e) | Vrne najmanjši element v tem nizu, ki je strogo večji od podanega elementa ali nič, če takega elementa ni. |
| iterator() | Vrne iterator nad elementi v tem nizu v naraščajočem vrstnem redu. |
| nižje (E e) | Vrne največji element v tem nizu, ki je strogo manjši od podanega elementa ali nič, če takega elementa ni. |
| pollFirst() | Pridobi in odstrani prvi (najnižji) element ali vrne ničelno vrednost, če je ta niz prazen. |
| pollLast() | Pridobi in odstrani zadnji (najvišji) element ali vrne ničelno vrednost, če je ta niz prazen. |
subSet(E fromElement boolean fromInclusive E toElement boolean toInclusive) | Vrne pogled na del tega niza, katerega elementi segajo od fromElement do toElement. |
| podnabor(E odElementa E doElementa) | Vrne pogled na del tega niza, katerega elementi segajo od fromElement inclusive do toElement exclusive. |
| tailSet(E fromElement) | Vrne pogled dela tega niza, katerega elementi so večji ali enaki fromElement. |
| tailSet(E fromElement logic inclusive) | Vrne pogled na del tega nabora, katerega elementi so večji od (ali enaki, če je inclusive true) fromElement. |
Metode, podedovane iz vmesnika java.util.SortedSet
Metoda | Opis numpy dot product |
|---|---|
| primerjalnik() | Ta metoda vrne primerjalnik, uporabljen za razvrščanje elementov v tem naboru, ali ničelno vrednost, če ta nabor uporablja naravno razvrščanje svojih elementov. |
| prvi() | Ta metoda vrne prvi (najnižji) element v tem nizu. |
| zadnji() | Ta metoda vrne zadnji (najvišji) element v nizu. |
| spliterator() | Ustvari razdelilnik nad elementi v tem razvrščenem nizu. |
Metode, podedovane iz vmesnika java.util.Set
Metoda | Opis |
|---|---|
| dodaj (element) | Ta metoda se uporablja za dodajanje določenega elementa v niz. Funkcija doda element samo, če navedeni element še ni prisoten v naboru, sicer funkcija vrne False, če je element že prisoten v naboru. |
| addAll(zbirka) | Ta metoda se uporablja za dodajanje vseh elementov iz omenjene zbirke obstoječemu nizu. Elementi se dodajajo naključno brez upoštevanja kakršnega koli posebnega vrstnega reda. |
| počisti() | Ta metoda se uporablja za odstranitev vseh elementov iz množice, vendar ne za brisanje množice. Referenca za komplet še vedno obstaja. |
| vsebuje (element) | Ta metoda se uporablja za preverjanje, ali je določen element prisoten v naboru ali ne. |
| vsebujeVse(zbirka) | Ta metoda se uporablja za preverjanje, ali nabor vsebuje vse elemente, ki so prisotni v dani zbirki ali ne. Ta metoda vrne true, če nabor vsebuje vse elemente, in vrne false, če kateri od elementov manjka. |
| enako () | Primerja navedeni predmet s tem nizom za enakost. |
| hashCode() | Ta metoda se uporablja za pridobitev vrednosti hashCode za ta primerek Seta. Vrne celoštevilsko vrednost, ki je vrednost hashCode za ta primerek nabora. |
| isEmpty() | Ta metoda se uporablja za preverjanje, ali je NavigableSet prazen ali ne. |
| odstrani (element) | Ta metoda se uporablja za odstranitev danega elementa iz niza. Ta metoda vrne True, če je navedeni element prisoten v Setu, sicer vrne False. |
| odstraniVse(zbirka) | Ta metoda se uporablja za odstranitev vseh elementov iz zbirke, ki so prisotni v nizu. Ta metoda vrne true, če se je ta niz spremenil zaradi klica. |
| ohraniVse(zbirka) | Ta metoda se uporablja za ohranitev vseh elementov iz niza, ki so omenjeni v dani zbirki. Ta metoda vrne true, če se je ta niz spremenil zaradi klica. |
| velikost () | Ta metoda se uporablja za določitev velikosti nabora. To vrne celoštevilsko vrednost, ki označuje število elementov. |
| toArray() | Ta metoda se uporablja za oblikovanje matrike enakih elementov, kot je nabor. |
| toArray(T[] a) | Vrne matriko, ki vsebuje vse elemente v tem nizu; vrsta izvajalnega časa vrnjene matrike je navedena matrika. |
Metode, deklarirane v vmesniku java.util.Collection
| Metoda | Opis |
|---|---|
| parallelStream() | Vrne morebitni vzporedni tok s to zbirko kot virom. |
| removeIf(predikat super E>filter) | Odstrani vse elemente te zbirke, ki izpolnjujejo dani predikat. |
| tok () | Vrne zaporedni tok s to zbirko kot izvorom. |
| toArray?(IntFunction | Vrne matriko, ki vsebuje vse elemente v tej zbirki, z uporabo podane funkcije generatorja za dodelitev vrnjene matrike. |
Metode, deklarirane v vmesniku java.lang.Iterable
| Metoda | Opis |
|---|---|
| forEach(Potrošnik super T>dejanje) | Izvede dano dejanje za vsak element Iterable, dokler niso vsi elementi obdelani ali dejanje vrže izjemo. |