Verwenden Sie Streams, um einen Booleschen Wert zurückzugeben, wenn alle Listenwerte in einer Map leer / nicht leer sind

AngenommenMap Zuordnen eines Strings zu einemList, gibt es eine Möglichkeit, @ zu verwendeJava Streams, um einen Booleschen Wert zurückzugeben, bei dem TRUE bedeutet, dass mindestens eine Liste Elemente enthält? Wenn alle Listen in der Map leer waren, geben Sie FALSE zurück.

Map< String , List<String> > map = …

ann die Verwendung von Streams diesen herkömmlichen Code ersetze

// 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;
    }
}

Hinweis, dass wir nach dem ersten Befund aus der Prüfung ausbrechen können. Es ist nicht erforderlich, alle Kartenwerte (alle Listen) zu überprüfen. Wäre schön, wenn der Stream aus Gründen der Effizienz die gleiche Funktion für die erste Suche ausführen könnte (eine „Kurzschluss“ -Operation).

Antworten auf die Frage(6)

Ihre Antwort auf die Frage