English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo programma, imparerai vari trucchi per convertire una raccolta (HashMap) in una lista.
import java.util.*; public class MapList { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); List<Integer> keyList = new ArrayList<>(map.keySet()); List<String> valueList = new ArrayList<>(map.values()); System.out.println("Elenco Chiavi: " + keyList); System.out.println("Elenco Valori: " + valueList); } }
Eseguendo questo programma, l'output sarà:
Lista Chiavi: [1, 2, 3, 4, 5] Lista Valori: [a, b, c, d, e]
Nel programma sopra, abbiamo una mappa denominata Integer e Stringa. Poiché la mappa contieneChiaveValoreSì, quindi abbiamo bisogno di due liste per memorizzarle, ovvero keyList per le chiavi e valueList per i valori.
Usiamo il metodo keySet() della mappa per ottenere tutte le chiavi e ne creiamo un ArrayList chiamato keyList. Allo stesso modo, usiamo il metodo values() della mappa per ottenere tutte le valori e ne creiamo un ArrayList chiamato valueList.
import java.util.*; import java.util.stream.Collectors; public class MapList { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); List<Integer> keyList = map.keySet().stream().collect(Collectors.toList()); List<String> valueList = map.values().stream().collect(Collectors.toList()); System.out.println("Elenco Chiavi: " + keyList); System.out.println("Elenco Valori: " + valueList); } }
L'output del programma è lo stesso dell'esempio 1.
Nel programma sopra, non abbiamo utilizzato il costruttore ArrayList, ma stream() per trasformare la mappatura in una lista
Abbiamo passato toList() del Collector come parametro, convertendo chiave e valore in un flusso tramite il metodo collect() e trasformandolo in una lista