import java.util.*; import java.util.function.BiFunction; import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; class Test { public static class K<T> { private final T head; private final K<T> tail; public K(T head, K<T> tail) { this.head = head; this.tail = tail; } } public static class P<U> { public <B, C> P<C> biMap(P<B> that, BiFunction<U, B, C> f) { return null; } } public static <A> P<K<A>> f(K<P<A>> x) { return x.head.biMap(f(x.tail), K::new); } } class A<T> { public A(Supplier<T> arg0, Supplier<A<T>> arg1){} static <S> A<S> make(S[] s) { return helpMake(0, s); } static <S> A<S> helpMake(int offset, S[] s) { return new A<>(() -> s[offset], () -> helpMake(offset + 1, s)); } } interface MultivaluedMap<K, V> extends Map<K, List<V>> { void putSingle(K var1, V var2); void add(K var1, V var2); V getFirst(K var1); } class Headers { private final Map<String, List<String>> headers; public Headers(Map<String, List<String>> headers) { this.headers = headers; } public Headers(MultivaluedMap<String, Object> multimap) { this.headers = multimap.entrySet() .stream() .collect( Collectors.toMap( Map.Entry::getKey, x -> x.getValue() .stream() .map(Object::toString) .collect(Collectors.toList()) ) ); } } class IDEA128245 { public void testCollectors(final Stream<Map.Entry<String, Set<String>>> stream, Stream<Integer> integerStream) { stream.collect(Collectors.toMap(Map.Entry::getKey, entry -> integerStream.collect(Collectors.toSet()))); } }