forEach
- терминальная операция; ничего не возвращает; поэтому вызов метода, который не имеет побочных эффектов, является бесполезной операцией.
Я думаю, вы ищете серию операций, которые преобразуют, а затем свердают результаты в новый тип коллекции. Для этого используется потоковый API:
List<Floor> randomizedFloors = floorsMap.values().stream()
.map(Floor::randomizeDestinations)
.collect(Collectors.toList());
РЕДАКТИРОВАТЬ:
Возможно randomizeDestinations
рандомизирует 'на месте' и возвращает void. В этом случае вы не можете сохранить карту нетронутой, а затем иметь список со случайными адресатами, если у вас нет способа клонировать объект «Пол», который вы должны явно создать. Вы можете сделать:
List<Floor> randomizedFloors = floorsMap.values().stream().map(floor -> {
Floor clone = floor.makeACopy(); // you must write this
clone.randomizeDestinations();
return clone;
}).collect(Collectors.toList());