kotlin中的Set集合类

Kotlin中的Set也分为:

不可变Set。
可变MutableSet。(支持增加和删除)

不可变Set同样是继承了Collection。MutableSet接口继承于Set, MutableCollection,同时对Set进行扩展,添加了对元素添加和删除等操作。

Set,MutableSet源码:
// 不可变Set
public interface Set<out E> : Collection<E> {
    // Query Operations
    override val size: Int

    override fun isEmpty(): Boolean
    override fun contains(element: @UnsafeVariance E): Boolean
    override fun iterator(): Iterator<E>

    // Bulk Operations
    override fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean
}

// 可变MutableSet
public interface MutableSet<E> : Set<E>, MutableCollection<E> {
    // Query Operations
    override fun iterator(): MutableIterator<E>

    // Modification Operations
    override fun add(element: E): Boolean

    override fun remove(element: E): Boolean

    // Bulk Modification Operations
    override fun addAll(elements: Collection<E>): Boolean

    override fun removeAll(elements: Collection<E>): Boolean
    override fun retainAll(elements: Collection<E>): Boolean
    override fun clear(): Unit
}
创建不可变Set
val mSet = setOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
println(mSet)

因为Set集合的于元素具有不可重复性,打印输出如下:

[1, 8, 2, 9, 4, 7, 0]

创建可变MutableSet
val mSet = mutableSetOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
println("=========打印MutableSet=========")
println(mSet)
println("=======MutableSet添加元素========")
mSet.add(3)
mSet.add(5)
println(mSet)
println("=======MutableSet删除元素========")
mSet.remove(0)
println(mSet)
println("=======获取最大元素与最小元素=======")
println(mSet.max())
println(mSet.min())

打印输出:

=========打印MutableSet==========  
[1, 8, 2, 9, 4, 7, 0]  
=======MutableSet添加元素========  
[1, 8, 2, 9, 4, 7, 0, 3, 5]  
=======MutableSet删除元素========  
[1, 8, 2, 9, 4, 7, 3, 5]  
======获取最大元素与最小元素======  
9    
1    
遍历Set
forEach遍历
val mSet = mutableSetOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
mSet.forEach {
    println(it)
}

打印输出:

1
8
2
9
4
7
0

for遍历
val mSet = mutableSetOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
for (number in mSet){
    println(number)
}

打印输出:

1
8
2
9
4
7
0

iterator遍历
val mSet = mutableSetOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
val mIterator = mSet.iterator()
if (!mIterator.hasNext()) return
while (mIterator.hasNext()){
    println(mIterator.next())
}

打印输出:

1
8
2
9
4
7
0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒙同學

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值