2

イメージすると、person というオブジェクトがあり、person は次のようになります。

class Person {
    int id;
    String name;
    String country
    // ...
    // getter/setter
}

オブジェクトの がありListPersonそれをマップに「変換」したいと考えています。以下を使用できます。

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;
    }));
4

1 に答える 1