Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要映射的计时器类_Java_List_Dictionary_Collections_Java Stream - Fatal编程技术网

Java 要映射的计时器类

Java 要映射的计时器类,java,list,dictionary,collections,java-stream,Java,List,Dictionary,Collections,Java Stream,例如,我有一些类Person class Person { private String firstName; private String lastName; private String street; ... } 此外,我还有一个列表personList,其中包含一些Person对象。目标是将这些对象作为键放入Map personMap,并将new Timer()对象作为值添加。因此每个人都有一个计时器() 我正在努力做下一步: personMap =

例如,我有一些类
Person

class Person {

    private String firstName;
    private String lastName;
    private String street;

    ...
}
此外,我还有一个
列表personList
,其中包含一些
Person
对象。目标是将这些对象作为键放入
Map personMap
,并将
new Timer()
对象作为值添加。因此每个
人都有一个
计时器()
我正在努力做下一步:

personMap = personList.stream().collect(toMap(person -> person, new Timer()));

但编译器说:
不存在类型变量T,U的实例,因此计时器符合函数您必须为键和变量提供函数,其中:

keyMapper-用于生成关键点的映射函数

valueMapper-用于生成值的映射函数

你需要:

Map<Person, Timer> personMap = personList.stream()
    .collect(Collectors.toMap(
        person -> person,           // Function to create a key
        person -> new Timer()));    // Function to create a value
Map personMap=personList.stream()
.collect(collector.toMap)(
person->person,//创建密钥的函数
人员->新计时器());//函数创建一个值
为了更好地理解,以下是使用同一收集器表示为匿名类的lambda:

personList.stream().collect(Collectors.toMap(
        new Function<Person, Person>() {                    // Function to create a key
            @Override
            public Person apply(Person person) {
                return person;                              // ... return self
            }},
        new Function<Person, Timer>() {                     // Function to create a value
            @Override
            public Timer apply(Person person) {
                return new Timer();                         // ... return a new Timer
            }}
    ));
personList.stream().collect(Collectors.toMap(
new Function(){//用于创建密钥的函数
@凌驾
公众人士申请(个人){
返回人;/…返回自己
}},
new Function(){//创建值的函数
@凌驾
公共计时器应用(个人){
返回新计时器();/…返回新计时器
}}
));

toMap的第二个参数是一个函数(
FunctionChange
new Timer()
to
person->new Timer()
Map<Person, Timer> map = personList.stream()
        .collect(Collectors.toMap(Function.identity(), person -> new Timer()));