Kotlin MutableSet 接口

2024 年 8 月 29 日 | 4 分钟阅读

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

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

MutableSet 接口声明

MutableSet 接口的继承属性

性质描述
abstract val size: Int它返回集合的大小。

MutableSet 接口的函数

Kotlin MutableSet 接口有几个函数。下面提到了一些函数。

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

Kotlin MutableSet 接口示例 1

让我们创建一个声明 MutableSet 并遍历其元素的示例。

输出

....intmutableSet....
2
6
4
29
5
....anymutableSet......
2
6
4
29
5
Ajay
Ashu

在上面的示例中,元素“4”和“Ajay”声明了两次。但是,在遍历这些 MutableSet 时,它们只打印一次,这是因为 MutableSet 接口不支持重复元素。

Kotlin MutableSet 接口示例 2 - add() 和 addAll()

输出

....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

Kotlin MutableSet 接口示例 3 - remove() 和 removeAll()

输出

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

Kotlin MutableSet 接口示例 4 - contains() 和 containsAll()

输出

....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

Kotlin MutableSet 接口示例 5 - isEmpty() 和 any()

输出

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

Kotlin MutableSet 接口示例 6 - first()、indexOf() 和 drop()

输出

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