【2023】Kotlin教程 第二篇 面向对象与函数式编程 第15章 数据容器——数组和集合 15.3 Set集合 15.3.1 不可变Set集合

【2023】Kotlin教程

在这里插入图片描述

第二篇 面向对象与函数式编程

第15章 数据容器——数组和集合

在计算机程序中会有很多数据,这些数据也需要一个容器将它们管理起来,这就是数据容器。

数据容器本质是基于某种数据结构,常见的数据结构:数组(Array)、集(Set)、队列(Queue)、链表(Linkedlist)、树(Tree)、堆(Heap)、栈(Stack)和映射(Map)等结构。

Kotlin中数据容器主要分为数组和集合

15.3 Set集合

Set集合是由一串无序的,不能重复的相同类型元素构成的集合。

Set集合的接口分为不可变集合kotlin.collections.Set和可变集合kotlin.collections.MutableSet,以及Java提供的实现类java.util.HashSet。.

15.3.1 不可变Set集合

创建不可变Set集合可以使用工厂函数setOf,它有三个版本:

  • setOf()。创建空的不可变Set集合。
  • setOf(element::T)。创建单个元素的不可变Set集合。
  • setOf(vararg elements:T)。创建多个元素的不可变Set集合,vararg表明参数个数是可变的。

不可变Set集合接口是kotlin.collections.Set,它也继承自Collection接口,kotlin.collections.Set提供了一些集合操作函数和属性如下:

  • isEmpty()函数。判断Set集合中是否有元素,没有返回true,有则返回false。该函数是从Collection 集合继承过来的。与isEmpty()函数相反的函数是isNotEmpty(),
  • contains(element:E)函数。判断Set集合中是否包含指定元素,包含返true,不包含返回false。该函数是从Collection集合继承过来的。
  • iterator()函数。返回迭代器(Iterator)对象,迭代器对象用于遍历集合。该函数是从Collection集合继承过来的。
  • size属性。返回Set集合中的元素个数,返回值是Int类型。该属性是从Collection集合继承过来的。

举个栗子:

package com.dingjiaxiong

fun main() {
    
    

    val set1 = setOf("ABC")
    val set2 = setOf<Long?>()
    val set3 = setOf(1, 3, 34, 54, 75)

    println(set1.size)
    println(set2.isEmpty())
    println(set3.contains(75))

    // 使用for 循环遍历
    println("=== 1. 使用for循环遍历 === ")
    for (item in set3) {
    
    
        print(item)
        print(" ")
    }

    println()
    
    // 使用迭代器遍历
    println("=== 2. 使用迭代器遍历 === ")
    val it = set3.iterator()
    while (it.hasNext()) {
    
    
        val item = it.next()
        print(item)
        print(" ")
    }
}

在这里插入图片描述

set3.iterator()函数可以返回迭代器对象。之后调用迭代器hasNext()函数可以判断集合中是否还有元素可以迭代,有返回true,没有返回false。调用迭代器的next()返回迭代的下一个元素。

猜你喜欢

转载自blog.csdn.net/weixin_44226181/article/details/130038101