kotlin中的Set集合類

Kotlin中的Set也分爲:web

不可變Set。
可變MutableSet。(支持增長和刪除)ruby

不可變Set一樣是繼承了Collection。MutableSet接口繼承於Set, MutableCollection,同時對Set進行擴展,添加了對元素添加和刪除等操做。bash

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集合的於元素具備不可重複性,打印輸出以下:ide

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

建立可變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())

打印輸出:ui

=========打印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) }

打印輸出:spa

1
8
2
9
4
7
0 .net

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

打印輸出:code

1
8
2
9
4
7
0 server

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

本文分享 CSDN - 秦川小將。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索