【Kotlin】集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )

2023-03-30 18:52:04 浏览数 (1)

文章目录

  • 一、Set 集合
  • 二、可变 Set 集合
  • 三、List 与 Set 之间相互转换
  • 四、数组类型

一、Set 集合


List 集合中的元素是 可以重复 的 , Set 集合中的元素 不可重复 ;

调用 setOf 函数 , 可以创建 Set 集合 ;

调用 Set#elementAt 函数 , 可以 读取 Set 集合中的元素 ;

代码示例 :

代码语言:javascript复制
fun main() {
    val set = setOf("Tom", "Jerry", "Jack")
    println(set.elementAt(1))
}

执行结果 :

代码语言:javascript复制
Jerry

二、可变 Set 集合


调用 mutableSetOf 函数 , 可以创建 可变 Set 集合 ;

可变 Set 集合 , 可以

  • 使用 = 运算符 添加元素 ,
  • 使用 -= 运算符删除元素 ;

代码示例 :

代码语言:javascript复制
fun main() {
    val mutableSet = mutableSetOf("Tom", "Jerry", "Jack")
    mutableSet  = "Bill"
    mutableSet -= "Jerry"

    println(mutableSet)
    println(mutableSet.elementAt(2))
}

执行结果 :

代码语言:javascript复制
[Tom, Jack, Bill]
Bill

三、List 与 Set 之间相互转换


调用 List#toSet() 函数 , 可以将 List 集合转为 Set 集合 , 转换过程中会 自动删除重复的元素 ;

调用 List#distinct() 函数 , 可以去除重复元素 ;

调用 Set#toList() 函数 , 可以将 Set 集合转为 List 集合 ;

代码示例 :

代码语言:javascript复制
fun main() {
    val list = listOf("Tom", "Jerry", "Jack", "Tom", "Jerry", "Jack")
    println(list)
    println(list.distinct())

    val list2 = listOf("Tom", "Jerry", "Jack", "Tom", "Jerry", "Jack")
    val set = list2.toSet()
    println(set)
}

执行结果 :

代码语言:javascript复制
[Tom, Jerry, Jack, Tom, Jerry, Jack]
[Tom, Jerry, Jack]
[Tom, Jerry, Jack]

四、数组类型


数组类型 :

  • Int 类型数组 : IntArray 数组类型 , 使用 intArrayOf 函数创建 ;
  • Double 类型数组 : DoubleArray 数组类型 , 使用 doubleArrayOf 函数创建 ;
  • Long 类型数组 : LongArray 数组类型 , 使用 longArrayOf 函数创建 ;
  • Short 类型数组 : ShortArray 数组类型 , 使用 shortArrayOf 函数创建 ;
  • Byte 类型数组 : ByteArray 数组类型 , 使用 byteArrayOf 函数创建 ;
  • Float 类型数组 : FloatArray 数组类型 , 使用 floatArrayOf 函数创建 ;
  • Boolean 类型数组 : BooleanArray 数组类型 , 使用 booleanArrayOf 函数创建 ;
  • 普通对象类型数组 : Array 数组类型 , 使用 arrayOf 函数创建 ;

代码示例 :

代码语言:javascript复制
fun main() {
    var intArray = intArrayOf(0, 1, 2, 3)
    var doubleArray = doubleArrayOf(0.1, 0.2, 0.3)
    var longArray = longArrayOf(0, 1, 2, 3)
    var shortArray = shortArrayOf(0, 1, 2, 3)
}

0 人点赞