Sla*_*how 7 java functional-programming sequence kotlin
在 Java Streams API 中我可以做这样的事情:
someStream.stream()
.filter(someCondition)
.findFirst()
.map(someMappingStatement)
.orElse(null)
Run Code Online (Sandbox Code Playgroud)
我不想对序列执行相同的代码:
someSequence.asSequence()
.filter{ someCondition }
.map{ someMappingStatement }
.firstOrNull()
Run Code Online (Sandbox Code Playgroud)
我有些担心findFirst()。因为在这里的序列中我过滤,然后映射所有元素,但不是第一个元素。我怎样才能更好地按顺序重写它?
在这种情况下,这两个操作发生的顺序并不重要。您可以通过替换为来交换firstOrNull和,但计算时间不会有任何显着差异,特别是因为您使用的是序列而不是列表。对于序列,用作终端操作的事实意味着该函数将仅在第一个元素上运行。mapmapletfirstOrNullmap