有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java kotlin是否有返回迭代器的映射函数?

如果我使用.map映射kotlin中的List,它将返回一个新列表。出于性能原因,是否存在只返回迭代器的等价物

这对于Java可能是一样的,所以我在这个问题中也包括了这个标记


共 (1) 个答案

  1. # 1 楼答案

    这在某种程度上取决于你想用迭代器做什么

    Kotlin有Sequence,这相当于Java8的Stream,这意味着它们是惰性的:它们在迭代时只提供元素(使用任何终端操作,如sumcount,也算是迭代)

    所以,如果你想找的是懒惰,那就去序列吧

    要从列表创建序列,可以使用asSequence()

    val list = listOf(1, 2, 3)
    val seq = list.asSequence().map { it * 2 }
    // nothing happens as long as the sequence is not iterated upon
    val result = coldSeq.toList() // now things are computed and added to a list
    

    您还可以使用sequenceOf直接创建序列

    如果您的目标确实是获取Java Iterator,那么可以使用.iterator()从序列中获取一个