En Java el Conjunt navegable és un subtipus de la Conjunt ordenat interfície. Ens permet realitzar diverses operacions com obtenir les coincidències més properes per a una iteració d'ordre descendent d'un element determinat i altres. Proporciona mètodes per navegar pels elements del conjunt.
recursivitat java
Per exemple La interfície NavigableSet ens permet navegar pel conjunt en ordre ascendent i descendent a diferència del SortedSet que només admet l'ordre ascendent. Les classes que implementen la interfície NavigableSet són Conjunt d'arbres i ConcurrentSkipListSet
- NavigableSet amplia SortedSet i, per tant, proporciona mètodes com first() last() headSet() tailSet() etc.
- Permet navegar en ambdues direccions en ordre ascendent i descendent
- La implementació més comuna de NavigableSet és TreeSet.
Exemple: Aquest exemple demostra la creació d'un NavigableSet mitjançant TreeSet i afegir-hi elements que els ordena automàticament en ordre ascendent.
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); } }
Sortida
Navigable Set: [10 20 30 40 50]
El diagrama següent mostra l'estructura d'herència al marc de col·lecció de Java relacionada amb els conjunts.
TreeSet és una classe que implementa Conjunt navegable que al seu torn s'estén SortedSet que s'estén Set .
Declaració de NavigableSet
A Java, la declaració de NavigableSet es pot declarar com:
Conjunt navegable
setName;
Nota: ' Tipus és el tipus d'element del conjunt (per exemple, cadena entera, etc.) i setName és el nom de la variable.
Creació d'objectes NavigableSet
No podem crear un NavigableSet directament ja que és una interfície. En comptes d'això, fem servir una classe com Conjunt d'arbres que la implementa. Amb l'ajuda de genèrics podem definir el tipus d'objectes que emmagatzemarà el conjunt. Aquest conjunt segur de tipus es pot definir com:
Conjunt navegable
set = nou TreeSet ();
Exemple: Aquest exemple mostra com utilitzar diversos mètodes de NavigableSet com descedingSet() tailSet() lower() pollFirst() i pollLast() per manipular i navegar per un conjunt ordenat en ordre normal i invers.
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()); } }
Sortida:
Realització de diverses operacions a NavigableSet
1. Afegir elements: Podem utilitzar el afegir() mètode per inserir elements al NavigableSet. Els elements s'emmagatzemen en l'ordre ordenat, no es permeten duplicats i el NavigableSet tampoc accepta valors nuls.
hrithik roshan
Exemple: Aquest exemple mostra com afegir elements a un NavigableSet utilitzant add() on els duplicats s'ignoren i els elements s'ordenen en ordre ascendent.
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); } }
Sortida
NavigableSet: [A B C]
2. Elements d'accés: Després d'afegir els elements, si volem accedir als elements, podem utilitzar mètodes integrats com conté () primer () darrer () etc.
Exemple: Aquest exemple mostra com afegir elements a un NavigableSet comprovant l'existència d'un element i recuperant el primer i l'últim element.
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()); } }
Sortida
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C
com obrir un fitxer amb java
3. Eliminació d'elements: Els valors es poden eliminar del NavigableSet mitjançant l' eliminar () pollFirst() enquestaLast() .
Exemple: Aquest exemple demostra l'eliminació d'elements del 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); } }
Sortida
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]
dividint una cadena en c++
4. Elements iterants: Hi ha diverses maneres d'iterar a través del NavigableSet. El més famós és utilitzar el millorat per bucle.
Exemple: Aquest exemple demostra l'addició d'elements a un NavigableSet i la iteració a través d'ell en ordre ascendent.
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 + ' '); } }
Sortida
A B C D E Z
Mètodes
Els següents són els mètodes presents a la interfície NavigableSet.
Mètodes | Descripció |
|---|---|
| sostre (E e) | Retorna el menor element d'aquest conjunt més gran o igual que l'element donat o nul si no hi ha aquest element. |
| descendentIterator() | Retorna un iterador sobre els elements d'aquest conjunt en ordre descendent. |
| conjunt descendent() | Retorna una vista d'ordre invers dels elements continguts en aquest conjunt. |
| pis (E e) | Retorna l'element més gran d'aquest conjunt menor o igual que l'element donat o nul si no hi ha aquest element. |
| Auriculars (E a Element) | Retorna una vista de la part d'aquest conjunt els elements de la qual són estrictament inferiors a toElement. |
| headSet(E toElement boolean inclòs) | Retorna una vista de la part d'aquest conjunt els elements de la qual són menors que (o iguals que si l'inclou és cert) a Element. |
| superior (E e) | Retorna el mínim element d'aquest conjunt estrictament més gran que l'element donat o nul si no hi ha aquest element. |
| iterador() | Retorna un iterador sobre els elements d'aquest conjunt en ordre ascendent. |
| inferior (E e) | Retorna l'element més gran d'aquest conjunt estrictament inferior a l'element donat o nul si no hi ha aquest element. |
| pollFirst() | Recupera i elimina el primer element (el més baix) o retorna null si aquest conjunt està buit. |
| enquestaLast() | Recupera i elimina l'últim element (el més alt) o retorna null si aquest conjunt està buit. |
subconjunt (E de l'element booleà fromInclusive E toElement boolean toInclusive) | Retorna una vista de la part d'aquest conjunt els elements van des de l'element fins a l'element. |
| subconjunt (E de l'element E a l'element) | Retorna una vista de la part d'aquest conjunt els elements de la qual van des de l'element inclòs fins a l'exclusiu de l'element. |
| tailSet (E de l'element) | Retorna una vista de la part d'aquest conjunt els elements de la qual són majors o iguals a fromElement. |
| tailSet (E de l'element booleà inclòs) | Retorna una vista de la part d'aquest conjunt els elements de la qual són més grans que (o iguals que si inclusive és cert) fromElement. |
Mètodes heretats de la interfície java.util.SortedSet
Mètode patró de disseny de fàbrica | Descripció |
|---|---|
| comparador () | Aquest mètode retorna el comparador utilitzat per ordenar els elements d'aquest conjunt o nul si aquest conjunt utilitza l'ordenació natural dels seus elements. |
| primer () | Aquest mètode retorna el primer element (el més baix) present en aquest conjunt. |
| darrer () | Aquest mètode retorna l'últim element (el més alt) present al conjunt. |
| divisor () | Crea un divisor sobre els elements d'aquest conjunt ordenat. |
Mètodes heretats de la interfície java.util.Set
Mètode | Descripció |
|---|---|
| afegir (element) | Aquest mètode s'utilitza per afegir un element específic al conjunt. La funció afegeix l'element només si l'element especificat ja no està present al conjunt, sinó la funció retorna False si l'element ja està present al conjunt. |
| addAll (col·lecció) | Aquest mètode s'utilitza per afegir tots els elements de la col·lecció esmentada al conjunt existent. Els elements s'afegeixen aleatòriament sense seguir cap ordre específic. |
| clar () | Aquest mètode s'utilitza per eliminar tots els elements del conjunt però no eliminar el conjunt. La referència del conjunt encara existeix. |
| conté (element) | Aquest mètode s'utilitza per comprovar si un element específic està present al conjunt o no. |
| conté tot (col·lecció) | Aquest mètode s'utilitza per comprovar si el conjunt conté tots els elements presents a la col·lecció donada o no. Aquest mètode retorna true si el conjunt conté tots els elements i retorna false si falta algun dels elements. |
| és igual a () | Compara l'objecte especificat amb aquest conjunt per a la igualtat. |
| hashCode() | Aquest mètode s'utilitza per obtenir el valor hashCode per a aquesta instància del conjunt. Retorna un valor enter que és el valor hashCode per a aquesta instància del conjunt. |
| està buit() | Aquest mètode s'utilitza per comprovar si un NavigableSet està buit o no. |
| eliminar (element) | Aquest mètode s'utilitza per eliminar l'element donat del conjunt. Aquest mètode retorna True si l'element especificat està present al conjunt, en cas contrari retorna False. |
| removeAll (col·lecció) | Aquest mètode s'utilitza per eliminar tots els elements de la col·lecció que estan presents al conjunt. Aquest mètode retorna true si aquest conjunt ha canviat com a resultat de la trucada. |
| retainAll (col·lecció) | Aquest mètode s'utilitza per retenir tots els elements del conjunt que s'esmenten a la col·lecció donada. Aquest mètode retorna true si aquest conjunt ha canviat com a resultat de la trucada. |
| mida () | Aquest mètode s'utilitza per obtenir la mida del conjunt. Això retorna un valor enter que indica el nombre d'elements. |
| toArray() | Aquest mètode s'utilitza per formar una matriu dels mateixos elements que el del conjunt. |
| toArray(T[] a) | Retorna una matriu que conté tots els elements d'aquest conjunt; el tipus d'execució de la matriu retornada és el de la matriu especificada. |
Mètodes declarats a la interfície java.util.Collection
| Mètode | Descripció |
|---|---|
| parallelStream() | Retorna un flux possiblement paral·lel amb aquesta col·lecció com a font. |
| removeIf(Predicat super E>filtre) | Elimina tots els elements d'aquesta col·lecció que compleixen el predicat donat. |
| corrent () | Retorna un flux seqüencial amb aquesta col·lecció com a font. |
| toArray? (Funció Int | Retorna una matriu que conté tots els elements d'aquesta col·lecció mitjançant la funció generadora proporcionada per assignar la matriu retornada. |
Mètodes declarats a la interfície java.lang.Iterable
| Mètode | Descripció |
|---|---|
| per a cadascú (Consumidor super T>acció) | Realitza l'acció donada per a cada element de l'iterable fins que s'han processat tots els elements o l'acció genera una excepció. |