イメージすると、person というオブジェクトがあり、person は次のようになります。
class Person {
int id;
String name;
String country
// ...
// getter/setter
}
オブジェクトの がありList
、Person
それをマップに「変換」したいと考えています。以下を使用できます。
Map<Long, List<Person>> collect = personList.stream().
collect(Collectors.toMap(Person::getId, p -> p));
しかし、valuemapper のデフォルト値を返し、valuemapper のタイプを変更することは可能ですか?
私はそのようなことを考えました:
Map<Long, List<Person>> collect =
personList.stream().collect(Collectors.groupingBy(Person::getId, 0));
しかし、これで次のエラーが発生しますis not applicable for the arguments
回避策はありますが、あまりきれいではないと思います。
Map<Long, Object> collect2 = personList.stream().
collect(Collectors.toMap(Person::getId, pe -> {
return 0;
}));