Kotlin:具有最佳值的maxBy {}

调解人

假设我在Kotlin中有以下代码:

val min = listOf("hello", "", "teeeeeest").minBy { it.length }

minBy的实现中我了解到的是,它在变量中跟踪minValue并遍历整个集合,并在找到更小的元素时对其进行更新。

但是对于Strings,我们知道没有元素的值不能小于0,因此空String“”是最佳的,并且可以停止迭代。

有没有一种方法可以告诉minBy(或maxBy)最佳值,以便一旦达到最佳值就可以停止?如果没有,我如何才能最轻松地实现呢?

马斯特朗

stdlib中没有函数可以执行此操作,但是您可以自己将其实现为扩展函数。

通过在Kotlin中使用内联lambda函数的非本地返回功能,您可以像这样实现它:

fun <T, E : Comparable<E>> Iterable<T>.minBy(theoreticalMinimum: E, keySelector: (T) -> E): T? =
    minBy { 
      val key = keySelector(it)
      if (key <= theoreticalMinimum) return it // Non-local return.
      else key
   }

现在,您可以像这样使用它,它将永远不会访问“ teeeeeest”:

val min = listOf("hello", "", "teeeeeest").minBy(theoreticalMinimum = 0) { it.length }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数据框列表中获取具有最佳值的数据框

来自分类Dev

什么是Phusion旅客PassengerMaxRequestQueueSize的最佳值

来自分类Dev

keras 提取最佳值损失

来自分类Dev

确定CUDA中#pragma展开N的最佳值

来自分类Dev

将?x样式模式变量转换为最佳值

来自分类Dev

如何设置伽玛校正的最佳值

来自分类Dev

如何在FourierSeries中优化“ k”的最佳值

来自分类Dev

将?x样式模式变量转换为最佳值

来自分类Dev

使用Apply找到7个常数的最佳值?

来自分类Dev

将具有动态值的Firebase数据库转换为Kotlin数据类的最佳实践

来自分类Dev

有没有一种方法可以比较列表中的两个对象并组合它们的最佳值?(Java)

来自分类Dev

如何为块大小选择最佳值,为坏块选择最佳的块数?

来自分类Dev

SQL-以最佳值联接,否则以默认值联接

来自分类Dev

SQL-以最佳值联接,否则以默认值联接

来自分类Dev

为什么python的timeit使用“ 3中的最佳值”来测量经过的时间?

来自分类Dev

LinearSVC中参数class_weight的最佳值是多少?

来自分类Dev

查找列表字典的最佳值组合(也许与熊猫配合使用)

来自分类Dev

set.seed()函数-设置种子的最佳值是什么?

来自分类Dev

每小时MySQL最大连接数最佳值

来自分类Dev

如何为我的应用程序找到要在 setValidateAfterInactivity 中设置的最佳值

来自分类Dev

为什么 AdamOptimizer 无法找到最小化 x*x 的最佳值?

来自分类Dev

检查多个输入是否具有相同值的最佳方法

来自分类Dev

返回两个SQL表的最佳值以及表2中不匹配的表1中的值

来自分类Dev

伪算法,需要4个输入并输出三个数字的最大/最佳值之和

来自分类Dev

哪种交叉方法最适合使我们快速改变GA中TSP的最佳值?

来自分类Dev

在大多数情况下,套索简历或山脊简历中的ALPHA是否存在最佳值?

来自分类Dev

使用具有最佳性能值的弹簧数据更新行的最佳方法是什么?

来自分类Dev

暂停Kotlin协程,直到流具有特定值

来自分类Dev

从具有特定值的现有对象创建新对象的最佳方法

Related 相关文章

  1. 1

    从数据框列表中获取具有最佳值的数据框

  2. 2

    什么是Phusion旅客PassengerMaxRequestQueueSize的最佳值

  3. 3

    keras 提取最佳值损失

  4. 4

    确定CUDA中#pragma展开N的最佳值

  5. 5

    将?x样式模式变量转换为最佳值

  6. 6

    如何设置伽玛校正的最佳值

  7. 7

    如何在FourierSeries中优化“ k”的最佳值

  8. 8

    将?x样式模式变量转换为最佳值

  9. 9

    使用Apply找到7个常数的最佳值?

  10. 10

    将具有动态值的Firebase数据库转换为Kotlin数据类的最佳实践

  11. 11

    有没有一种方法可以比较列表中的两个对象并组合它们的最佳值?(Java)

  12. 12

    如何为块大小选择最佳值,为坏块选择最佳的块数?

  13. 13

    SQL-以最佳值联接,否则以默认值联接

  14. 14

    SQL-以最佳值联接,否则以默认值联接

  15. 15

    为什么python的timeit使用“ 3中的最佳值”来测量经过的时间?

  16. 16

    LinearSVC中参数class_weight的最佳值是多少?

  17. 17

    查找列表字典的最佳值组合(也许与熊猫配合使用)

  18. 18

    set.seed()函数-设置种子的最佳值是什么?

  19. 19

    每小时MySQL最大连接数最佳值

  20. 20

    如何为我的应用程序找到要在 setValidateAfterInactivity 中设置的最佳值

  21. 21

    为什么 AdamOptimizer 无法找到最小化 x*x 的最佳值?

  22. 22

    检查多个输入是否具有相同值的最佳方法

  23. 23

    返回两个SQL表的最佳值以及表2中不匹配的表1中的值

  24. 24

    伪算法,需要4个输入并输出三个数字的最大/最佳值之和

  25. 25

    哪种交叉方法最适合使我们快速改变GA中TSP的最佳值?

  26. 26

    在大多数情况下,套索简历或山脊简历中的ALPHA是否存在最佳值?

  27. 27

    使用具有最佳性能值的弹簧数据更新行的最佳方法是什么?

  28. 28

    暂停Kotlin协程,直到流具有特定值

  29. 29

    从具有特定值的现有对象创建新对象的最佳方法

热门标签

归档