Java stream API: are there syntax sugar for identi

2019-02-22 09:52发布

We use several Map as simple memory DB over list of objects:

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

Are there any syntax sugar or built-in functor in Java SE to replace p -> p with something else?

1条回答
闹够了就滚
2楼-- · 2019-02-22 10:36

You could use Function.identity() but if you want short then I don't think you'll beat your existing p -> p.

查看更多
登录 后发表回答