日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kotlin 第三讲——集合篇1

發布時間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kotlin 第三讲——集合篇1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容簡介:前文介紹了數據類型相關的文章,本講我們來聊聊 Kotlin 中的集合。

?

簡介

?

Kotlin 完全兼容 Java 的集合,且 Kotlin 有專有的集合:可變集合&不可變集合(本質還是 Java 的集合,后面講到的類的映射大家就明白啦)。

?

不可變集合:集合在創建的時候,就知道元素的個數與內容。創建后不可以新增元素。

fun main() { /** * Kotlin 不可變集合 * 都不帶有 add 方法和 remove 方法 * * 其實不可變的集合,就是給編譯器看的.編譯器不讓你寫 remove 方法,最終編譯的 class 文件都映射成了 Java 的集合 * Java 調用 Kotlin 的不可變集合,是可以調用到 remove 和 add 方法的 */ val listOf = listOf<String>("1", "2", "3") val setof = setOf<String>("1", "2", "3") val map = mapOf<String, Int>(Pair("1", 1), Pair("2", 2)) /** * 注意: * 為啥可以用 to 連接呢?(后續講到神奇的中綴符號,類似自定義操作符) */ val mapof = mapOf("1" to 1, "2" to 3) }

補充一點:

?

可變結合:創建后可以新增元素。

fun main() { /** * Kotlin 中的可變集合 * 最終也是映射成 Java 的集合 */ val list = mutableListOf<String>("1", "2", "3") val mutableMapOf = mutableMapOf(1 to 2, 2 to 3) val mutableSetOf = mutableSetOf(1 , 3) /** * 當然 Kotlin 也可以直接使用 Java 的集合定義 */ val javaList = ArrayList<String>() val javaMap = HashMap<String, Int>() val javaSet = HashSet<String>() }

?

Kotlin 集合方法的封裝

?

Kotlin 為我們擴展了好多方便操作集合方法,我們來看看常用的幾個吧。

List 集合

取值:可直接通過索引獲取

fun main() { val javaList = ArrayList<String>() /** * 直接通過索引訪問 */ val s = javaList[0] }

?

取區間:還記得 Kotlin 特有的區間嗎?當我們想從 list 集合中取一個區間范圍的時候,使用 slice 方法即可。

fun main() { val javaList = ArrayList<String>() /** * 取區間,當然也可以使用半開區間 until */ val result = javaList.slice(0..2) }

?

List集合直接相加減:Kotlin List 集合可以運算啦!!!(大伙考慮下,怎么實現的呢?)

操作解釋
list1 + list2最終結果,合并2個集合
list1 - list2最終結果,list1 于 list2 的差集
/** * 2個集合相加,得到第三個集合. * 2個集合相減,左邊的集合刪除右邊集合中存在的元素 */ fun main() { /** * 這里我特意創建了2個不同類型的集合 */ val list = mutableListOf<String>("1", "2", "3") val javaList = ArrayList<String>() /** * 1個是 mutableList 一個是 ArrayList * 發現還可以相加,充分證明了,他倆有不可拆分的聯系 */ val listAdd = list + javaList }

?

遍歷丶轉換丶過濾:Kotlin 提供了很多類似 RxJava 的操作符。

fun main() { val javaList = ArrayList<String>() /** * 數據轉換 */ javaList.map { } /** * 過濾 */ javaList.filter { } /** * flatMap轉換 */ javaList.flatMap { } /** * 遍歷 */ javaList.forEach { } /** * 索引+值遍歷 */ javaList.forEachIndexed { index, s -> } }

?

刪除元素:Kotlin 的 remove 方法是刪除指定元素,removeAt 是按照索引刪除,removeIf 可以條件刪除。

fun main() { val list= mutableListOf<String>() /** * 對象刪除 */ list.remove("") /** * 索引刪除 */ list.removeAt(0) /** * 條件刪除 */ list.removeIf { } }

Map 集合

Map 集合在 Java 中是經常使用的集合。但是我不得不吐糟 Java 中 Map 集合遍歷很惡心。Kotlin 做了很大的改變,接下來我們來瞧一瞧。

?

增加元素:增加元素可以直接使用 [],類似數組賦值的語法增加(取 key 的值,也支持此語法)。

fun main() { /** * 創建可變 Map 并增加 2 個元素 * 注意: 這里的增加元素是通過 key to value 的形式,后面會講解這個 to 的原理 */ val mutableMap = mutableMapOf<String, Int>("阿文" to 18, "小麗" to 18) /** * 新的增加元素方式,增加 key=阿花 value=12 的一個元素 */ mutableMap["阿花"] = 12 }

?

刪除元素

fun main() { val mutableMap = mutableMapOf<String, Int>("阿文" to 18, "小麗" to 18) mutableMap.remove("阿文") }

?

遍歷丶轉換丶過濾

fun main() { val mutableMap = mutableMapOf<String, Int>("阿文" to 18, "小麗" to 18) /** * map 轉換 */ mutableMap.map { } /** * 過濾 */ mutableMap.filter { } /** * 遍歷 */ mutableMap.forEach { key, value -> } /** * in 遍歷 */ for (mutableEntry in mutableMap) { } /** * 這種形式的遍歷和上面的 in 遍歷方式是一致的 * 為何可以這樣寫?后面講到重載操作符會補充這里 */ for ((value, key) in mutableMap) { } }

?

總結

?

Kotlin 為集合提供了很多強大的輔助方法,實現原理都很簡單。(都是對集合進行封裝。其實這些功能全都歸功于 Koltin 的擴展函數。期待我們的下一篇文章吧!)。

?

參考內容:

  • Reference - Kotlin 語言中文站

    https://www.kotlincn.net/docs/reference/

?

推薦閱讀

--END--

識別二維碼,關注我們

總結

以上是生活随笔為你收集整理的Kotlin 第三讲——集合篇1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。