Kotlin序列:过滤器+首先查找+映射

问题描述 投票:0回答:1

在Java流API中,我可以进行如下操作:

someStream.stream()
          .filter(someCondition)
          .findFirst()
          .map(someMappingStatement)
          .orElse(null)

而且我不会对序列执行相同的代码:

someSequence.asSequence()
            .filter{ someCondition }
            .map{ someMappingStatement }
            .firstOrNull()

我对findFirst()感到担心。因为我在这里按顺序过滤,然后映射所有,但不映射第一个元素。如何更好地按顺序重写它?

java kotlin functional-programming sequence
1个回答
0
投票
在这种情况下,这两个操作的执行顺序无关紧要。您可以通过将firstOrNull替换为map来交换maplet,但是计算时间不会有任何显着差异,特别是因为您使用的是序列而不是列表。对于序列,使用firstOrNull作为终端操作的事实意味着map功能将仅在该第一个元素上运行。
© www.soinside.com 2019 - 2024. All rights reserved.