la collecte de HashMap<String, List<String>> java 8

Je veux être en mesure de convertir un List à un HashMap où la clé est le elementName et les valeurs d'une liste de quelque chose d'aléatoire (dans ce cas c'est le Nom de l'Élément). Donc en bref je veux (A->List(A), B->List(B), C-> List(C)). J'ai essayé d'utiliser toMap() et en passant la keyMapper et ValueMapper mais j'obtiens une erreur de compilation. Je serais vraiment reconnaissant si quelqu'un peut m'aider.

Merci!

public static void main(String[] args) {
    //TODO Auto-generated method stub
    List<String> list = Arrays.asList("A","B","C","D");
    Map<String, List<String>> map = list.stream().map((element)->{
        Map<String, List<String>> map = new HashMap<>();
        map.put(element, Arrays.asList(element));
        return map;
    }).collect(??);
}


Function<Map<String, String>, String> key = (map) -> {
    return map.keySet().stream().findFirst().get();
};

Function<Map<String, String>, String> value = (map) -> {
    return map.values().stream().findFirst().get();
};

=== Cela a fonctionné pour moi

Merci à tous pour l'aide les gars! @izstas "ils doivent travailler sur les éléments" a beaucoup aidé :). En fait c'est ce que je cherchais pour être exact

public static void test2 (){
    Function<Entry<String, List<String>>, String> key = (entry) -> {
        return entry.getKey();
    };
    Function<Entry<String, List<String>>, List<String>> value = (entry) -> {
        return new ArrayList<String>(entry.getValue());
    };
    BinaryOperator<List<String>> merge = (old, latest)->{
        old.addAll(latest);
        return old;
    };

    Map<String, List<String>> map1 = new HashMap<>();
    map1.put("A", Arrays.asList("A1", "A2"));
    map1.put("B", Arrays.asList("B1"));
    map1.put("D", Arrays.asList("D1"));

    Map<String, List<String>> map2 = new HashMap<>();
    map2.put("C", Arrays.asList("C1","C2"));
    map2.put("D", Arrays.asList("D2"));

    Stream<Map<String, List<String>>> stream =Stream.of(map1, map2);
    System.out.println(stream.flatMap((map)->{
        return map.entrySet().stream(); 
    }).collect(Collectors.toMap(key, value, merge)));
}
Qu'est-ce que l'erreur de compilation?
Postez votre code source, reportez-vous à Comment faire pour créer un Minimum, Complète et Vérifiable exemple
Je ne suis pas sûr, mais comme je sais que dans votre carte de la partie tout ce que vous avez à gauche est en adéquation avec le côté droit, de sorte que vous devrait revenir élément pas de carte, je pense 🙂

OriginalL'auteur user3869813 | 2014-07-23