02-集
8.1.1 集
集(Set)是一种简单的集合,它的对象不按特定的方式排序,只是被简单地加入到集合中。同时,对集合中对象的访问和操作都是通过引用对象来实现的,因此集合中不能有重复对象。
Kotlin没有提供专门的语法来创建Set,但可以使用标准库中的方法来创建,如emptySet()、setOf()和mutableSetOf()等。
- emptySet():创建一个空的只读集。
- setOf(vararg T):创建一个只读集。
- mutableSetOf(vararg elements):创建一个可变集。
这当中,mutableSetOf()创建的可变集内容是可以修改的,而emptySet()和setOf()创建的集是只读的,内容不可以修改,代码如下。
val empty= emptySet<String>() //创建一个空集
val lan= setOf("Kotlin","Java","Scale","Node") //创建一个只读集
val mutable= mutableSetOf<String>() //创建一个可变集
mutable.add("Kotlin")
println(empty)
println(lan)
println(mutable)
运行上面的代码,输出的结果如下。
[]
[Kotlin, Java, Scale, Node]
[Kotlin]
除了上面的函数之外,Set还提供了一些有用的API,常见的有以下几种。
- isEmpty():判断集合是否为空。
- contains(E):判断集合中是否包含某一元素。
- iterator():返回该集合只读元素的迭代器。
- containsAll(Collection
):批量判断集合中是否包含某一集合。
在Java中,Set接口主要有两个实现类:HashSet和TreeSetKotlin。
- HashSet:该类按照HASH算法来存取集合中的对象,存取速度比较快。
- TreeSet:该类实现了SortedSet接口,能够对集合中的对象进行排序。
- LinkedHashSet:具有HashSet的查询速度,且内部使用链表来维护元素的顺序。
自1.1版本开始,Kotlin的Set接口提供了HashSet和LinkedHashSet两种实现类,而它们的底层也是通过封装HashSet、TreeSet和LinkedHashSet来完成的。