Я пытаюсь сделать что-то вроде бы несравненно, но пока не повезло. У меня есть список Карта, они происходят из кучки CompletedFutures параллельно, результат затем должен быть соединен. Поскольку ключ на карте уникален, необходимо объединить значения и создать новую карту уникальных ключей, связанных с объединенным списком SomeType. Например:Java 8 stream объединяет карту
map1: ключ1: Sometype1 ключ2: Sometype2
map2 ключ1: Sometype3 ключ2: Sometype4
Желаемый конечный результат: Map3: ключ1: SomeType, Sometype3 ключ2: Sometype2, Sometype4
Я пробовал использовать groupBy и другие методы, но, похоже, большинство из них предполагает работу со списком, а не с картой. джин, поэтому я не смог найти простой способ сделать это.
До сих пор у меня есть что-то вроде:
Map<String, List<Sometype>> volPercent = waitGroup.stream()
.map(CompletableFuture::join)
.flatMap((e) -> e.entrySet().stream())
.collect(Collectors.groupingBy());
Часть Я не уверен, что нужно идти в группировке по частям. Я попытался Map.Entry :: GETKEY, но он не компилируется:
Error:(69, 25) java: incompatible types: inference variable T has incompatible bounds
equality constraints: com.Sometype
lower bounds: java.util.Map.Entry<java.lang.String,com.Sometype>
Пожалуйста построить небольшой работоспособный пример вашей проблемы, то трудно решить только с потоком строки кода. – Keppil
Восходящий материал 'CompletableFuture' немного отвлекает внимание. Для будущих вопросов было бы полезно начать с более явных входов. Но я думаю, что смог понять это. –