【问题标题】:Java stream API: are there syntax sugar for identity functor?Java 流 API:是否有标识函子的语法糖?
【发布时间】:2015-01-29 19:16:55
【问题描述】:

我们使用几个Map 作为对象列表上的简单内存数据库:

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

Java SE 中是否有任何语法糖或内置仿函数可以将p -&gt; p 替换为其他内容?

【问题讨论】:

    标签: java lambda java-8 java-stream


    【解决方案1】:

    你可以使用Function.identity(),但如果你想要做空的话,我认为你不会击败现有的p -&gt; p

    【讨论】:

    • 我已经开始使用__ -&gt; __ 语法来突出变量名的重要性。请注意,Java 8 中保留了单下划线符号。
    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 2020-08-12
    • 2014-07-13
    • 1970-01-01
    • 2016-01-26
    • 2021-05-05
    • 2012-02-07
    • 2010-09-22
    相关资源
    最近更新 更多