English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di Base Java

Controllo dei flussi di Java

Array di Java

Orientamento ad oggetti in Java (I)

Orientamento ad oggetti in Java (II)

Orientamento ad oggetti in Java (III)

Gestione delle Eccezioni Java

Liste di Java

Queue di Java (coda)

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Ordinamento delle mappe per valore in Java

Completa guida di esempio Java

In questo programma, imparerai a ordinare una mappa fornita per valore in Java.

Esempio: ordinare una mappa per valore

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.

Completa guida di esempio Java