java kotlin是否有返回迭代器的映射函数? 1 年,4 月 Questions & Answers 416 如果我使用.map映射kotlin中的List,它将返回一个新列表。出于性能原因,是否存在只返回迭代器的等价物 这对于Java可能是一样的,所以我在这个问题中也包括了这个标记
# 1 楼答案 这在某种程度上取决于你想用迭代器做什么 Kotlin有Sequence,这相当于Java8的Stream,这意味着它们是惰性的:它们在迭代时只提供元素(使用任何终端操作,如sum或count,也算是迭代) 所以,如果你想找的是懒惰,那就去序列吧 要从列表创建序列,可以使用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()从序列中获取一个
# 1 楼答案
这在某种程度上取决于你想用迭代器做什么
Kotlin有
Sequence
,这相当于Java8的Stream
,这意味着它们是惰性的:它们在迭代时只提供元素(使用任何终端操作,如sum
或count
,也算是迭代)所以,如果你想找的是懒惰,那就去序列吧
要从列表创建序列,可以使用
asSequence()
:您还可以使用
sequenceOf
直接创建序列如果您的目标确实是获取Java
Iterator
,那么可以使用.iterator()
从序列中获取一个