Kotlin教程:MutableSet接口声明与示例

2023年 7月 12日 18.9k 0

Kotlin MutableSet接口是一个通用的无序元素集合。 MutableSet接口不支持重复元素。 此接口是可变的,因此其方法支持读写功能,也支持添加和删除元素。

Set接口使用mutableSetOf()函数创建包含元素列表的set接口对象。

MutableSet接口声明

interface MutableSet : Set, MutableCollection (source)

Kotlin

MutableSet接口继承的属性

属性 描述
abstract fun add(element: E): Boolean 它将给定元素添加到集合中。
abstract fun addAll(elements: Collection): Boolean 它将给定集合的所有元素添加到当前集合中。
abstract fun clear() 它将删除此集合中的所有元素。
abstract fun iterator(): MutableIterator 它返回此对象元素的迭代器。
abstract fun remove(element: E): Boolean 如果指定元素存在于集合中,将从此集合中删除单个指定元素。
abstract fun removeAll(elements: Collection): Boolean 它会删除集合中指定的当前集合中的所有元素。
abstract fun retainAll(elements: Collection): Boolean 它仅保留当前集合中存在于指定集合中的那些元素。
abstract fun contains(element: E): Boolean 它检查当前集合中是否包含的指定元素。
abstract fun containsAll(elements: Collection): Boolean 它检查当前集合中是否存在指定集合的所有元素。
abstract fun isEmpty(): Boolean 如果集合为空(不包含任何元素),则返回true,否则返回false
fun Iterable.any(): Boolean 如果集合包含至少一个元素,则返回true
fun Iterable.any(predicate: (T) -> Boolean): Boolean 如果至少元素与给定的谓词匹配,则返回true
fun Iterable.distinct(): List 它返回一个列表,其中只包含给定集合中的不同元素。
fun Iterable.drop(n: Int): List 它返回一个列表,其中包含除前n个元素之外的所有元素。
fun Iterable.elementAt(index: Int): T 它返回给定索引处的元素,或者如果集合中不存在给定索引则抛出IndexOutOfBoundException
fun Iterable.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T 如果索引在当前集合中超出范围,它将返回给定索引处的元素或调用defaultValue函数的结果。
fun Iterable.max(): T? 它返回最大的元素,如果集合中没有元素,则返回null
fun Iterable.min(): T? 它返回最小的元素,如果集合中没有元素,则返回null
fun MutableCollection.remove(element: T): Boolean 如果它存在于当前集合中,它将删除单个指定元素。
fun MutableCollection.removeAll(elements: Collection): Boolean 它删除了包含在指定集合中的当前集合的所有元素。
fun MutableCollection.retainAll(elements: Collection): Boolean 它保留当前集合中包含在指定集合中的所有元素。
fun Iterable.reversed(): List 它以相反的顺序返回元素。

Kotlin MutableSet接口示例1

下面创建一个MutableSet,并遍历元素的示例。

fun main(args: Array) {
    val intmutableSet = mutableSetOf(2, 6, 4, 29, 4, 5)
    val anymutableSet: Set = setOf(2, 6, 4, 29, 4, 5, "Ajax", "Susen", "Ajax")
    println("....intmutableSet....")
    for(element in intmutableSet){
        println(element)
    }
    println("....anymutableSet......")
    for(element in anymutableSet){
        println(element)
    }
}

Kotlin

执行上面示例代码,得到以下结果 -

....intmutableSet....
2
6
4
29
5
....anymutableSet......
2
6
4
29
5
Ajax
Susen

Shell

在上面的例子中,元素4Ajax都使用两次。 但是在遍历MutableSet时,它们只打印一次,这是因为MutableSet接口不支持重复元素。

Kotlin MutableSet示例2 - add() 和 addAll()函数

fun main(args: Array) {  
    val intmutableSet = mutableSetOf(2, 6, 4, 29, 4, 5)  
    val mutableSet: MutableSet = mutableSetOf(6,8,11,22)  

    println("....intmutableSet....")  
    for(element in intmutableSet){  
        println(element)  
    }  
    intmutableSet.add(10)  
    println("....intmutableSet.add(10)....")  
    for(element in intmutableSet){  
        println(element)  
    }  

    intmutableSet.addAll(mutableSet)  
    println("....intmutableSet.addAll(mutableSet)....")  
    for(element in intmutableSet){  
        println(element)  
    }  
}

Kotlin

执行上面示例代码,得到以下结果 -

....intmutableSet....
2
6
4
29
5
....intmutableSet.add(10)....
2
6
4
29
5
10
....intmutableSet.addAll(mutableSet)....
2
6
4
29
5
10
8
11
22

Shell

Kotlin MutableSet示例3 - remove() 和 removeAll()函数

fun main(args: Array) {  
    val intmutableSet = mutableSetOf(2, 6, 4, 29, 4, 5)  
    val mutableSet: MutableSet = mutableSetOf(6,8,11,22)  

    println("....intmutableSet....")  
    for(element in intmutableSet){  
        println(element)  
    }  
    intmutableSet.remove(29)  
    println("....intmutableSet.remove(29)....")  
    for(element in intmutableSet){  
        println(element)  
    }  
    intmutableSet.removeAll(mutableSet)  
    println("....intmutableSet.removeAll(mutableSet)....")  
    for(element in intmutableSet){  
        println(element)  
    }  
}

Kotlin

执行上面示例代码,得到以下结果 -

....intmutableSet....
2
6
4
29
5
....intmutableSet.remove(29)....
2
6
4
5
....intmutableSet.removeAll(mutableSet)....
2
4
5

Shell

Kotlin MutableSet示例4 - contains() 和 containsAll()函数

fun main(args: Array) {
    val mutableSet1 = mutableSetOf(2, 6, 4, 29, 4, 5)
    val mutableSet2: MutableSet = mutableSetOf(6,8,11,22)
    val mutableSet3: MutableSet = mutableSetOf(2,4,6)

    println("....mutableSet1....")
    for(element in mutableSet1){
        println(element)
    }
    println("....mutableSet2....")
    println(mutableSet2)
    println("....mutableSet3....")
    println(mutableSet3)
    println("....mutableSet1.contains(29)....")
    println(mutableSet1.contains(29))

    println("....mutableSet1.containsAll(mutableSet2))....")
    println(mutableSet1.containsAll(mutableSet2))
    println("....mutableSet1.containsAll(mutableSet3))....")
    println(mutableSet1.containsAll(mutableSet3))
}

Kotlin

执行上面示例代码,得到以下结果 -

....mutableSet1....
2
6
4
29
5
....mutableSet2....
[6, 8, 11, 22]
....mutableSet3....
[2, 4, 6]
....mutableSet1.contains(29)....
true
....mutableSet1.containsAll(mutableSet2))....
false
....mutableSet1.containsAll(mutableSet3))....
true

Shell

Kotlin MutableSet示例5 - isEmpty() 和 any()函数

fun main(args: Array) {
    val mutableSet1 = mutableSetOf(2, 6, 4, 29, 4, 5)

    println("....mutableSet1....")
    for(element in mutableSet1){
        println(element)
    }
    println("....mutableSet1.isEmpty()....")
    if(mutableSet1.isEmpty())
        println("mutableSet1 is empty, not contain any element")
    else
        println("mutableSet1 is not empty, contains element")

    println("....mutableSet1.any()....")
    if(mutableSet1.any())
        println("mutableSet1 contain at least one or more elements")
    else
        println("mutableSet1 not contain any element")
}

Kotlin

执行上面示例代码,得到以下结果 -

....mutableSet1....
2
6
4
29
5
....mutableSet1.isEmpty()....
mutableSet1 is not empty, contains element
....mutableSet1.any()....
mutableSet1 contain at least one or more elements

Shell

Kotlin MutableSet示例6 - first(),indexOf() 和 drop()函数

fun main(args: Array) {
    val mutableSet1 = mutableSetOf(2, 6, 4, 29, 4, 5)

    println("....mutableSet1....")
    for(element in mutableSet1){
        println(element)
    }
    println("....mutableSet1.first()....")
    println(mutableSet1.first())

    println("...mutableSet1.indexOf(4)...")
    println(mutableSet1.indexOf(4))

    println("...mutableSet1.drop(3)...")
    println(mutableSet1.drop(3))
}

Kotlin

执行上面示例代码,得到以下结果 -

....mutableSet1....
2
6
4
29
5
....mutableSet1.first()....
2
...mutableSet1.indexOf(4)...
2
...mutableSet1.drop(3)...
[29, 5]

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-mutableset.html#article-start

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论