在你能够用集合来做你感兴趣的事情之前,你需要学习如何创建它们。在when对象一节,你已经碰到过创建一个新集合的方法:setOf函数。你创建一个颜色的集合,但是现在,让我们用数字来把它变得更加简单:


val set = setOf(1, 7, 53)

你以一种相似的方式创建一个列表或者一个映射:


val list = listOf(1, 7, 53)
val map = mapOf(1 to "one", 7 to "seven", 53 to "fifty-three")

注意,to并不是特殊的构造,而是一个常规的函数。我们将会在后续的部分回到这个话题。 你能够猜到这里边(用来)创建的对象的类是什么吗?运行下面的这个例子,你可以自己看看:


>>> println(set.javaClass)  // 1 javaClass在Kotlin中等价于Java中getClass()
class java.util.HashSet
>>> println(list.javaClass)
class java.util.ArrayList
>>> println(map.javaClass)
class java.util.HashMap

如你所见,Kotlin使用了标准的Java集合类。这对Java开发者来说是好事情:Kotlin并没有它自己的集合类。你现存所有的关于Java集合的知识在这里都是有用的。  为什么没有Kotlin集合呢?因为使用标准的Java集合让Kotlin更容易于Java代码进行交互。当你在Kotlin中调用Java函数时,你并不需要以某种方式转换集合,反之亦然。  尽管Kotlin中的集合跟Java中的是完全一样的,但是你可以在Kotlin中用它做更多的事情。举个例子,你可以获得列表中最后一个元素或者找出一个数字集合中的最大值:


>>> val strings = listOf("first", "second", "fourteenth")

>>> println(strings.last())
fourteenth

>>> val numbers = setOf(1, 14, 2)

>>> println(numbers.max())
14

在这一章,我们将会深入探讨集合是如何工作的以及所有的这些新方法是来自Java的那些类。  在后续的章节,当我们开始讨论λ(表达式)时,你将会看到更多你能够用集合实现(的例子),但我们将依然会使用同样的标准Java集合类。在集合(colleions)一节,你将会了解到Java集合类是如何用Kotlin类型系统描述的。  在讨论对Java集合起作用的神奇的lastmax函数之前,让我们了解一些用来声明函数的新概念吧!

results matching ""

    No results matching ""