Java - L'interfaccia SortedMap
L'interfaccia SortedMap estende Map. Assicura che le voci vengano mantenute in ordine crescente di chiavi.
Diversi metodi generano un'eccezione NoSuchElementException quando non sono presenti elementi nella mappa di richiamo. Viene generata un'eccezione ClassCastException quando un oggetto non è compatibile con gli elementi in una mappa. Viene generata una NullPointerException se si tenta di utilizzare un oggetto null quando null non è consentito nella mappa.
I metodi dichiarati da SortedMap sono riassunti nella seguente tabella:
Sr.No. | Metodo e descrizione |
---|---|
1 | Comparator comparator( ) Restituisce il comparatore della mappa ordinata che richiama. Se l'ordinamento naturale viene utilizzato per la mappa invocante, viene restituito null. |
2 | Object firstKey( ) Restituisce la prima chiave nella mappa invocante. |
3 | SortedMap headMap(Object end) Restituisce una mappa ordinata per quelle voci di mappa con chiavi inferiori a end. |
4 | Object lastKey( ) Restituisce l'ultima chiave nella mappa invocante. |
5 | SortedMap subMap(Object start, Object end) Restituisce una mappa contenente quelle voci con chiavi che sono maggiori o uguali all'inizio e minori alla fine. |
6 | SortedMap tailMap(Object start) Restituisce una mappa contenente quelle voci con chiavi che sono maggiori o uguali all'inizio. |
Esempio
SortedMap ha la sua implementazione in varie classi come TreeMap. Di seguito è riportato l'esempio per spiegare la funzionalità di SortedMap:
import java.util.*;
public class TreeMapDemo {
public static void main(String args[]) {
// Create a hash map
TreeMap tm = new TreeMap();
// Put elements to the map
tm.put("Zara", new Double(3434.34));
tm.put("Mahnaz", new Double(123.22));
tm.put("Ayan", new Double(1378.00));
tm.put("Daisy", new Double(99.22));
tm.put("Qadir", new Double(-19.08));
// Get a set of the entries
Set set = tm.entrySet();
// Get an iterator
Iterator i = set.iterator();
// Display elements
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
System.out.println();
// Deposit 1000 into Zara's account
double balance = ((Double)tm.get("Zara")).doubleValue();
tm.put("Zara", new Double(balance + 1000));
System.out.println("Zara's new balance: " + tm.get("Zara"));
}
}
Questo produrrà il seguente risultato:
Produzione
Ayan: 1378.0
Daisy: 99.22
Mahnaz: 123.22
Qadir: -19.08
Zara: 3434.34
Zara's new balance: 4434.34