我了解如何处理地图条目并将生成的流收集到不同的地图中。但我需要使用一个构造函数来传递前一个地图的关键字,我不知道如何去做。Java 8流:收集地图到地图和构造函数
的情况如下:
我有一个Map<Event, EventSchedule> schedules
,我想从它Map<Event, InverseSchedule>
。 InverseSchedule
由Event
构成,正好在schedules
中的每个关键字。
这是我尝试过,到目前为止,我只是一块远离终于实现我追求的:
Map<Event, InverseSchedule> inverseSchedules = schedules.get()
.keySet()
.stream()
.collect(Collectors.toMap(Function.identity(), ???));
我已经试过InverseSchedule::new
但当然不行,因为我没有传递任何参数,而且我也无法使用lambda表达式。
我仍然在努力理解这些新的Java 8功能。我真的很感激,如果答案包括为什么它的工作的解释,而不是只提供缺少的一块。
'InverseSchedule :: new',假设有一个'InverseSchedule'的构造函数接受'Event'? – Tunaki
为什么'InverseSchedule :: new'不工作? Stream会将参数传递给它,它将成为一个Event。如果你能向我们展示所提到的构造函数,那将是最好的。 –
如果你想要回答这个问题,你应该添加关于你的类的信息 - 这些不是标准Java库中的类,所以我们不知道它们提供了什么构造函数或方法。你如何从'Event'中创建'InverseSchedule'?你不想要任何值('EventSchedule')的信息吗?请[编辑]你的问题,并扩大。 – RealSkeptic