Ich habe die Person
Klasse:Fest mit Lambda-Ausdruck und Map
import java.util.*;
public class Person {
private String name;
Map<String,Integer> Skills=new HashMap<>(); // skill name(String) and level(int)
public String getName(){
return this.name;
}
public Map<String,Integer> getSkills(){
return this.Skills;
}
}
Und die App
Klasse:
import java.util.*;
import java.util.Map.Entry;
import static java.util.stream.Collectors.*;
import static java.util.Comparator.*;
public class App {
private List<Person> people=new ArrayList<>(); // the people in the company
public Map<String,Set<String>> PeoplePerSkill(){
return this.people.stream().collect(groupingBy(p-> p.getSkills().keySet() //<-get
//^problem here
,mapping(Person::getName,toSet())));
}
}
In der App
Klasse die PeoplePerSkill
Methode müssen die Set
von Menschen Namen zurückzukehren pro Fertigkeit. Es bedeutet, dass eine Fähigkeit von vielen Menschen gehört werden könnte.
ich mit den groupingBy(p->p...........,)
steckte ich kann einfach nicht die String
des Namen Fähigkeit bekommen, habe ich versucht, so viele Möglichkeiten, aber die Dinge Weg Fremdes :(.
By the way, mein derzeitiger Code gibt Map<Object, Set<String>>