Учитывая Map
, сопоставляя String с List
, есть ли способ использовать Java-потоки, чтобы вернуть логическое значение, где ИСТИНА означает, что один или несколько элементов списка имеют элементы? Если все списки на карте пусты, верните FALSE.
Map< String , List<String> > map = …
Может ли использование Streams заменить этот обычный код?
// 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;
}
}
Обратите внимание, что после первого обнаружения мы можем выйти из экзамена. Не нужно проверять все значения карты (все списки). Было бы неплохо, если бы для эффективности Stream мог выполнять ту же самую остановку-на-первом поиске (операция "короткого замыкания" ).