Cómo convertir Array a HashMap usando Java 8 Stream

Estoy escribiendo una función para convertir la matriz a Map usando Java 8 Stream.

Esto es lo que quería

public static <K, V> Map<K, V> toMap(Object... entries) {
    // Requirements:
    // entries must be K1, V1, K2, V2, .... ( even length )
    if (entries.length % 2 == 1) {
        throw new IllegalArgumentException("Invalid entries");
    }

    // TODO
    Arrays.stream(entries).????
}

Usos validos

Map<String, Integer> map1 = toMap("k1", 1, "k2", 2);

Map<String, String> map2 = toMap("k1", "v1", "k2", "v2", "k3", "v3");

Usos inválidos

Map<String, Integer> map1 = toMap("k1", 1, "k2", 2, "k3");

¿Alguna ayuda?

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta