English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Completa guida di esempio Java
In questo programma, imparerai a ordinare una mappa fornita per valore in Java.
import java.util.*; public class SortMap { public static void main(String[] args) { LinkedHashMap<String, String> capitals = new LinkedHashMap<>(); capitals.put("Nepal", "Kathmandu"); capitals.put("India", "New Delhi"); capitals.put("United States", "Washington"); capitals.put("England", "London"); capitals.put("Australia", "Canberra"); Map<String, String> result = sortMap(capitals); for (Map.Entry<String, String> entry : result.entrySet()) { System.out.print("Key: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); } } public static LinkedHashMap<String, String> sortMap(LinkedHashMap<String, String> map) { List<Map.Entry<String, String>> capitalList = new LinkedList<>(map.entrySet()); Collections.sort(capitalList, (o1, o2) -> o1.getValue().compareTo(o2.getValue())); LinkedHashMap<String, String> result = new LinkedHashMap<>(); for (Map.Entry<String, String> entry : capitalList) { result.put(entry.getKey(), entry.getValue()); } return result; } }
Eseguito questo programma, l'output è:
Key: Australia Value: Canberra Key: Nepal Value: Kathmandu Key: England Value: London Chiave: India Valore: Nuova Delhi Chiave: United States Valore: Washington
Nel programma sopra, memorizziamo il LinkedHashMap delle nazioni/regioni e delle loro capitali nella variabile capitals.
Abbiamo un metodo sortMap() che accetta una lista doppiamente collegata e restituisce una lista doppiamente collegata ordinata.
All'interno del metodo, convertiamo la mappa hash in una lista capitalList. Poi, usiamo il metodo sort(), che accetta una lista e un comparator.
Nel nostro esempio, il comparator è un'espressione lambda che compara i valori di due elenchi o1 e o2 con o1.getValue().compareTo(o2.getValue()).
Dopo l'operazione, otteniamo l'elenco ordinato capitalList. Poi, dobbiamo solo convertire l'elenco in LinkedHashMap e restituirlo.
Tornati al metodo main(), esaminiamo ogni elemento della mappa e stampiamo la sua chiave e valore.