美文网首页
每天学一点 Kotlin -- 集合:Set

每天学一点 Kotlin -- 集合:Set

作者: 冯可乐同学 | 来源:发表于2021-11-06 13:24 被阅读0次

----《第一季Kotlin崛起:次世代Android开发 》学习笔记

总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- 集合:MutableList
下一篇:每天学一点 Kotlin -- 集合:MutableSet

1. 集合类型

1.1 根据集合类型的整体特性,Kotlin 中分为3种集合:
(1) 有序可重复: Array -- 数组
(2) 有序不重复: Set
(3) 无序不重复: Map

2. Set

2.1 Set 特点: 大小固定,元素类型也固定

2.2 定义 Set:

Set<类型> 或 setOf(元素1, 元素2, ... 元素n)

2.3 Set 的两大特性:
(1) 包含关系: 如果集合A中所有的元素都在另一个集合B中,那么就说A是B的子集,也就是B包含A,或者A包含于B中。
(2) 两个集合的运算:
①交集:a.intersect(b)
②差集:a.subtract(b)
③并集:a.union(b)
④补集:a.union(b) - a.intersect(b)

2.4 举个栗子:

fun main() {
//    testSet01()
//    testSet02()
//    testSet03()
//    testSet04()
    testSet05()
}

fun testSet05() {
    // 补集:Kotlin 中并没有补集的方法,可以通过逻辑运算得到
    val set1 = setOf("C/C++", "Java", "Kotlin", "Python", "北京", "上海", "杭州", "从北京到杭州再到上海")
    val set2 = setOf("Python", "北京", "上海")
    val set3 = setOf("你好", "他好", "我好", "大家好")

    println(set1.union(set3) - set1.subtract(set2))
}

fun testSet04() {
    // 并集
    val set1 = setOf("C/C++", "Java", "Kotlin", "Python", "北京", "上海", "杭州", "从北京到杭州再到上海")
    val set2 = setOf("你好", "他好", "我好", "大家好")
    val set3 = setOf("1111", "2222", "333", "3333")
    println(set1.union(set2).union(set3))
}

fun testSet03() {
    // 差集
    val set1 = setOf("C/C++", "Java", "Kotlin", "Python", "北京", "上海", "杭州", "从北京到杭州再到上海")
    val set2 = setOf("Python", "北京", "上海")
    val set3 = setOf("你好", "他好", "我好", "大家好")

    println(set1.subtract(set2))
    println(set1.subtract(set3))
}

fun testSet02() {
    // 交集
    val set1 = setOf("C/C++", "Java", "Kotlin", "Python", "北京", "上海", "杭州", "从北京到杭州再到上海")
    val set2 = setOf("Python", "北京", "上海")
    val set3 = setOf("你好", "他好", "我好", "大家好")

    println(set1.intersect(set2))
    println(set1.intersect(set3))
}

fun testSet01() {
    // 包含关系
    val set1 = setOf("C/C++", "Java", "Kotlin", "Python", "北京", "上海", "杭州", "从北京到杭州再到上海")
    val set2 = setOf("Python", "北京", "上海")
    val set3 = setOf("你好", "他好", "我好", "大家好")

    println(set1.containsAll(set2))
    println(set2.containsAll(set1))
    println(set1.containsAll(set3))
}
相关代码:https://gitee.com/fzq.com/test-demo

相关文章

网友评论

      本文标题:每天学一点 Kotlin -- 集合:Set

      本文链接:https://www.haomeiwen.com/subject/rxytaltx.html