当前位置:嗨网首页>书籍在线阅读

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来完成的。