У меня есть несколько источников (Карты), где я храню данные, относящиеся к различным атрибутам, предназначенным для создания конечного объекта с идентификатором.Эти карты имеют различные структуры в соответствии с этим шаблоном:
Карта
- id - это идентификатор моего конечного объекта. FinalObject
- X1, X2 - атрибуты моего конечного объекта. FinalObject
в реальном коде у меня есть несколько карт следующим образом:
Map<Integer, String> descriptions;
Map<Integer, Double> prices;
Map<Integer, Double> quantities;
Map<Integer, String> currencies;
Я могу объединить поток своих коллекций с Stream.of()
, но у меня есть две проблемы,структура разнородных карт, а также для каждой записи я хочу создать объект Final способом Java8.
Я считаю, что мой MultipleFunction
как BiFunction, мои определенные атрибуты для FinalObject - аргументы.Это нормально, как дизайн?
Какие-либо мнения или советы?
Результат слияния будет выглядеть так:
Stream.of(descriptions.entrySet(), prices.entrySet(), quantities.entrySet(), currencies.entrySet())
.flatMap(Set::stream)
.collect(Collectors.toMap(Map.Entry::getKey, entry -> new FinalObject(description, price, quantity, currency)));
Этот код не компилируется идля моей проблемы лучшее понимание.