Имея:
List<Home> homeList = ....;
... your work ...
Map<String, Long> barcodeNumberMap = ...;
Тогда первый вопрос должен быть о том, как заполнить последнюю карту.Это делается с помощью .collect(Collectors.toMap(keyGetter, valueGetter))
.
Map<String, Long> result =
some obj stream of string and long
.collect(Collectors.toMap(obj::getString, obj::getLong);
Тогда homeList
Home: длинная и много строк, должна быть сплющена.Какой из них сгладит 10 домов с 20 струнами до 200 пар длинных и струнных.Вероятно, можно предположить, что каждое значение String уникально.
A Stream<Pair<String, long>>
будет выполнено, как
homeList.stream()
.flatMap(home ->
home.addressList.stream()
.map(addr -> Pair<String, Long>(addr, list.number)));
, если одна работа для внутреннего Дома наружу: Дом может быть превращенв Stream<Pair<String, Long>>
и flatMap сглаживает несколько потоков.
Поскольку это кажется домашней работой, я остановлюсь здесь.