如何使用java-streams从列表创建地图?

时间:2015-05-20 13:06:47

标签: java java-8 java-stream

我想用java8创建List的Map。

class Person {
    String name;
    int age;
    //etc
}

List<Person> persons;

Map<String, Person> personsByName = persons.stream().collect(
         Collectors.toMap(Person::getName, Functions.identify());

结果:The type Person does not define getName(T) that is applicable here

为什么呢? Person::getName有什么问题?

1 个答案:

答案 0 :(得分:4)

如果getName()中有Person方法,则应该没问题:

Map<String, Person> personsByName = persons.stream().collect(
                 Collectors.toMap(Person::getName, Function.identity()));

请注意,我还Functions.identify()更改了Function.identity()(不存在)function SendDownload(url) { //alert(url); var elemIF = document.createElement("iframe"); elemIF.src = url; elemIF.style.display = "none"; document.body.appendChild(elemIF); } 。我认为这是你的错字。