Java流API:身份仿函数有语法糖吗?

gav*_*koa 6 java lambda java-8 java-stream

我们Map在对象列表中使用几个简单的内存DB:

class Person {
    public String id;
    public String phone;
    public String email;
    // and get/set and other fields...
}

List<Person> persons;
Map<String, Person> emailLookup = persons.stream()
        .collect(Collectors.toMap(Person::getEmail, p -> p));
Map<String, Person> phoneLookup = persons.stream()
        .collect(Collectors.toMap(Person::getPhone, p -> p));
Map<String, Person> idLookup = persons.stream()
        .collect(Collectors.toMap(Person::getId, p -> p));
Run Code Online (Sandbox Code Playgroud)

在Java SE中是否有任何语法糖或内置函数替换 p -> p为其他东西?

Ian*_*rts 8

你可以使用,Function.identity()但如果你想要短,那么我认为你不会打败现有的p -> p.