Kotlin编程实战:创建优雅、富于表现力和高性能的JVM与Android应用程序
上QQ阅读APP看书,第一时间看更新

5.1.1 Kotlin所添加的便利方法

通过标准库的kotlin.collections[1]包,Kotlin为各种Java集合添加了许多有用的便利函数。你可以在Kotlin内部,用你熟悉的方式使用Java集合。对于相同的集合,在用Kotlin编程时,也可以使用Kotlin已添加的方法。

例如,在Java中,可以使用传统的for循环遍历存储在引用names中的字符串列表的元素,如下所示:

另外,为了更流畅,可以使用for-each迭代器:

后者中的混乱要比前者少些,但是在这个例子中我们只得到了元素而不是索引。如果在Java中使用函数式风格的forEach,而不是命令式风格的for-each迭代器,也会是这种情况。通过添加一个withIndex()方法,Kotlin可以方便地获得索引和值。下面是一个这样使用的例子:

在本例中,我们使用Kotlin的listOf()方法,对从JDK中获得的ArrayList实例调用withIndex()方法。这个方法返回特殊的对IndexedValue的遍历,IndexedValue是一个数据类。正如我们在3.4节中所看到的,Kotlin使用解构可以很容易地从数据类中提取值。使用该工具,我们获得了代码中的index和value。输出如下:

输出显示,这个实例是JDK ArrayList类,但是在Kotlin中进行迭代比在Java中更方便。withIndex()只是Kotlin添加到JDK类中的众多便利方法中的一个例子。花些时间熟悉一下kotlin.collections包中的方法。

[1] https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html