Dato un Map
mappatura di una stringa su List
, c'è un modo per utilizzare Java Streams per restituire un booleano dove TRUE indica uno o più elenchi aveva elementi? Se tutti gli elenchi nella mappa erano vuoti, restituire FALSE.Usa flussi per restituire booleano se tutti i valori Elenco in una mappa sono vuoti/non vuoti
Map< String , List<String> > map = …
L'uso di stream può sostituire questo codice convenzionale?
// See if any diffs were found. Loop through the Map, look at each List of diffs to see if non-empty.
boolean anyElementsInAnyList = false;
for (List<String> list : map.values()) {
if (!list.isEmpty()) {
anyElementsInAnyList = true;
break;
}
}
Si noti che è possibile uscire dall'esame dopo il primo rilevamento. Non è necessario esaminare tutti i valori della mappa (tutti gli elenchi). Sarebbe bello se, per efficienza, lo Stream potesse fare lo stesso stop-work-on-first-finding (un'operazione di "cortocircuito").
Intendi questo flusso java? http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html –
Qualche motivo per usare 'Boolean' invece di' boolean' nel tuo loop? – Holger