-5
Gibt es eine Möglichkeit, Map<Long, String>
direkt aus einer groupingBy
-Funktion in Java 8 zu erstellen, anstatt Map<Long, Set<String>>
zu erstellen?Java 8 Stream-Gruppierungby ohne Rückgabe Liste
Ich habe den folgenden Code:
List<Object[]> list = new ArrayList<>();
//row[0] is the primary key and row[1] is the name of the employee
Object[] input1 = { 1l, "employee1", null};
Object[] input2 = { 1l, "employee1", "vorw2"};
Object[] input3 = { 2l, "employee2", "vorw3"};
Object[] input4 = { 3l, "employee3", "vorw1"};
list.add(input1);
list.add(input2);
list.add(input3);
list.add(input4);
//code to replaced
Map<String, Set<String>> byPK= list.stream().collect(Collectors.groupingBy(row -> row[0].longValue(), Collectors.mapping(row -> row[1].toString(),Collectors.toSet())));
Ich brauche das o/p wie:
List ==> (1l, "employee1"), (2l,"employee2"), (3l, "employee3").
Liste hat einen einzigen generischen Typ. Liste existiert nicht. Code, der sinnvoll ist, und kompiliert. Beachten Sie auch die grundlegenden Java-Namenskonventionen. Variablen beginnen mit einem Kleinbuchstaben. –
Danke für die Änderung mich, ich ersetzte die Karte nach Liste. bearbeitet und korrigiert die Frage. – Mango
Kompiliert immer noch nicht (add() nimmt ein einzelnes Argument, nicht 3) und beachtet immer noch nicht die Namenskonventionen. Machen Sie einen Schritt zurück, öffnen Sie Ihre IDE, schreiben Sie Code, der in der IDE kompiliert wird, und beheben Sie dann Ihre Frage. –