在Java流API中,我可以进行如下操作:
someStream.stream()
.filter(someCondition)
.findFirst()
.map(someMappingStatement)
.orElse(null)
而且我不会对序列执行相同的代码:
someSequence.asSequence()
.filter{ someCondition }
.map{ someMappingStatement }
.firstOrNull()
我对findFirst()
感到担心。因为我在这里按顺序过滤,然后映射所有,但不映射第一个元素。如何更好地按顺序重写它?
firstOrNull
替换为map
来交换map
和let
,但是计算时间不会有任何显着差异,特别是因为您使用的是序列而不是列表。对于序列,使用firstOrNull
作为终端操作的事实意味着map
功能将仅在该第一个元素上运行。