Kotlin中如何不使用循环高效对Queue队列所有元素求和
Kotlin 队列无循环求和方案
Kotlin 标准库为所有实现了 Iterable 接口的集合类内置了优化过的聚合函数,java.util.Queue 本身符合该接口约定,因此直接调用内置函数即可实现无手动循环的求和操作,底层实现经过编译器优化,执行效率和手写循环一致。
针对Int类型队列的最简实现
你给出的代码示例中队列元素均为Int类型,直接调用 sum() 方法即可:
import java.util.Queue import java.util.LinkedList fun main() { // 注意补全Queue的泛型声明,避免类型擦除导致的编译问题 val queue: Queue<Int> = LinkedList(arrayListOf(353, 343, 5343, 3434)) val sumResult = queue.sum() println(sumResult) // 输出结果为 9473 }
通用适配所有数值类型的实现
如果队列元素是Long、Double等其他数值类型,可以使用 sumOf() 方法自定义映射规则,适配所有可求和场景:
// 示例:Double类型队列求和 val doubleQueue: Queue<Double> = LinkedList(listOf(1.5, 2.3, 4.7)) val sumResult = doubleQueue.sumOf { it }
注意:上述方法只会遍历读取队列元素做计算,不会移除队列中的任何元素,不会改变原队列的结构。
内容的提问来源于stack exchange,提问作者Saurabh Dhage
相关产品推荐
相关产品推荐

