最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin集合List Set Map使用介紹詳解

 更新時間:2022年09月06日 10:14:29   作者:niuyongzhi  
集合是可變數(shù)量(可能為0)的一組條目,kotlin標(biāo)準(zhǔn)庫提供一個整套用于集合管理的工具,各種集合對于解決問題都具有重要意義,并且經(jīng)常用到。kotlin中的集合與Java基本類似

1.在Kotlin中可以通過以下方式創(chuàng)建ArrayList、LinkedList、HashSet、HashMap等。

    val arrayList = ArrayList<String>()
    val linkedList = LinkedList<String>()
    val hashSet = HashSet<String>()
    val hashMap = HashMap<String,Int>()

2.除了上面的方式,Kotlin還提供了其他創(chuàng)建集合的方法。

1)創(chuàng)建不可變集合。

之所以是不可變的,是因為Kotlin針對這種方式創(chuàng)建的集合,不提供set,remove,add的方法。只提供了get方法。

 val list = listOf<Int>(1, 2, 3)
 val set = setOf<Int>(1, 2, 3)
 val map = mapOf(1 to "Jack", 2 to "Rose")

2)創(chuàng)建可以變集合。通過mutable創(chuàng)建的集合就是可變集合,可以對集合進(jìn)行add set remove操作。

 val mutableList = mutableListOf<Int>(1, 2, 3)
 val mutableSet = mutableSetOf<Int>(1, 2, 3)
 val mutableMap = mutableMapOf(1 to "Jack", 2 to "Rose")

3.對List的操作。

    val list = listOf<Int>(1, 2, 3)
    //通常get的方式
    println(list.get(1))
    //之所以能使用[]類似數(shù)組的方式獲取,是因為做了[]運算符重載,后面會講到。
    println(list[1])
    //角標(biāo)越界不會拋出異常,而是返回一個null
    println(list.getOrNull(3))
    //通過?:空合并操作符,?:左邊的值為空,則返回右邊的值
    println(list.getOrNull(3) ?: -1)
    //如果角標(biāo)越界,不會拋出異常。而是返回{}lambda表達(dá)式中的值
    println(list.getOrElse(3) { -1 })

1)通常通過get(index)來獲取:

list.get(1)

2)也可以通過[index],像操作數(shù)組那樣獲取。之所以可以用[]來獲取,是因為做了運算符重載。

list[1]

3)getOrNull,如果發(fā)生角標(biāo)越界,不會拋出異常而是返回null。可以和?:空合并操作符結(jié)合起來使用,返回一個默認(rèn)值。?:左邊的值為空,則返回右邊的值

list.getOrNull(3)
list.getOrNull(3) ?: -1

4)getOrElse接收兩個參數(shù),第一個索引值,第二個lambda表達(dá)式。如果角標(biāo)越界,不會拋出異常,而是返回lambda表達(dá)式中的值。

  list.getOrElse(3) { -1 }

5)可變集合:

 val mutableList = mutableListOf<Int>(1, 2, 3)

set操作

   mutableList.set(1,2)
   mutableList[1] = 2

add操作

 mutableList.add(4)
 mutableList += 5

remove操作 :-=運算符重載,刪除的是元素的值

    mutableList -= 5
    mutableList.remove(5)

removeIf 接收一個lambda表達(dá)式,可以根據(jù)表達(dá)式中的條件進(jìn)行刪除。

 mutableList.removeIf { it == 4 }
mutableList.removeIf { it.contains("H")}

6)List集合的遍歷

可以用in遍歷。

forEach 接收一個lambda表達(dá)式,會把集合中的元素傳進(jìn)來。

forEachIndexed接收一個lambda表達(dá)式,有兩個參數(shù),一個是index另外一個是對應(yīng)的value

    for (item in list) {
        println(item)
    }
    list.forEach {
        println(it)
    }
    list.forEachIndexed { index, value ->
        println("$index , $value")
    }

4.list集合的解構(gòu):

可以通過_過濾掉不想要的元素。

 val (first:Int,second:Int,third:Int) = listOf<Int>(1, 2, 3)
 val (first: Int, _, third: Int) = listOf<Int>(1, 2, 3)
 println("$first  $third")

5.set集合

1)set的獲取方式和list類似

    val set = setOf<Int>(1, 2, 3)
    set.elementAt(1)
    set.elementAtOrElse(1) { -1 }
    set.elementAtOrNull(1)

2)可變set集合

    val mutableSet = mutableSetOf<Int>(1, 2, 3)
    mutableSet += 4
    mutableSet -= 2
    mutableSet.remove(3)
    mutableSet.removeIf { it==4 }

3)list和set相互轉(zhuǎn)換

list轉(zhuǎn)為set,可以去除重復(fù)元素。set中是不允許重復(fù)的。

   val list =  mutableSet.toList();
   val set =  mutableList.toSet();

6.數(shù)組類型

    //ByteArray
    val byteArray = byteArrayOf(1,2,3)
    //IntArray
    val array = intArrayOf(1, 2, 3)
    //CharArray
    val charArray = charArrayOf('a','b','c')

7.map集合

1)map集合的創(chuàng)建

Pari對象,存放的就是key value

val map = mapOf(Pair(1, "HanMei"), Pair(2, "LiLei"))

to看起來像一個關(guān)鍵子,其實to是一個函數(shù)。這種寫法,后面會講到。

val map = mapOf(1 to "HanMei", 2 to "LiLei")

創(chuàng)建可變map

val mutableMap = mutableMapOf(1 to "HanMei", 2 to "LiLei")

2)map的get操作

    println(map[1])
    println(map.getValue(1))
    println(map.getOrDefault(1, "Default"))
    println(map.getOrElse(1) { "default" })

3)map的遍歷

  map.forEach {
        println("%$it.key , ${it.value}")
    }
  map.forEach { (key, value) -> println("$key ,$value") }

4)可變map的增刪改

   val mutableMap = mutableMapOf(1 to "HanMei", 2 to "LiLei")
    mutableMap += 3 to "XiaoHua"
    mutableMap.put(4, "XiaoHua")
    mutableMap.getOrPut(5) { "XiaoHua" }
    val getValue:()->String = {
        "value"
    }
    mutableMap.getOrPut(5) {getValue()}

到此這篇關(guān)于Kotlin集合List Set Map使用介紹詳解的文章就介紹到這了,更多相關(guān)Kotlin List Set Map內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android Popupwindow彈出窗口的簡單使用方法

    Android Popupwindow彈出窗口的簡單使用方法

    這篇文章主要為大家詳細(xì)介紹了Android Popupwindow彈出窗口的簡單使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android Studio 如何刪除/新建一個module(圖文教程詳解)

    Android Studio 如何刪除/新建一個module(圖文教程詳解)

    這篇文章主要介紹了Android Studio 如何刪除/新建一個module,此方法也會將該module從你的硬盤中刪除,如果直接右鍵會發(fā)現(xiàn)沒有delete選項,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2020-03-03
  • Android入門之Service的使用詳解

    Android入門之Service的使用詳解

    我們的Android在啟動一些長事務(wù)時都會使用異步,很多初學(xué)者覺得這個異步就是一個異步線程+Handler而己。如果你這么想就錯了。這一切其實靠的正是Android里的Service。本文就來和大家聊聊Service的生命周期和使用,需要的可以參考一下
    2022-12-12
  • Android實現(xiàn)計時器功能

    Android實現(xiàn)計時器功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)計時器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Android CameraManager類詳解

    Android CameraManager類詳解

    這篇文章主要為大家詳細(xì)介紹了Android CameraManager類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android MessageQueue消息隊列主要作用詳解

    Android MessageQueue消息隊列主要作用詳解

    Android 消息機(jī)制主要指的是 Handler 的運行機(jī)制及其所依賴的 MessageQueue 和 Looper 的工作過程,Handler、MessageQueue、Looper組成一個相互聯(lián)系的整體。本文先從 MessageQueue 的源碼來說明其實現(xiàn)原理
    2023-02-02
  • C#中利用正則表達(dá)式將人民幣金額轉(zhuǎn)換為大寫漢字

    C#中利用正則表達(dá)式將人民幣金額轉(zhuǎn)換為大寫漢字

    這篇文章主要介紹了C#中利用正則表達(dá)式將人民幣金額轉(zhuǎn)換為大寫漢字的方法,需要的朋友可以參考下
    2016-02-02
  • Android 項目實戰(zhàn)之頭像選擇功能

    Android 項目實戰(zhàn)之頭像選擇功能

    這篇文章主要介紹了Android 項目實戰(zhàn)頭像選擇功能實戰(zhàn),需要的朋友可以參考下
    2018-01-01
  • Android中關(guān)于CoordinatorLayout的一些實用布局技巧

    Android中關(guān)于CoordinatorLayout的一些實用布局技巧

    大家都知道CoordinatorLayout是一個“加強(qiáng)版”的 FrameLayout,那么下面這篇文章主要給大家分享了Android中關(guān)于CoordinatorLayout的一些布局技巧,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • Android實現(xiàn)底部支付彈窗效果

    Android實現(xiàn)底部支付彈窗效果

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)底部支付彈窗效果的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

廉江市| 曲周县| 迁安市| 萨迦县| 元阳县| 玛沁县| 枣强县| 饶阳县| 建平县| 吉林省| 黔西| 兴化市| 东乡县| 潜江市| 武夷山市| 贡觉县| 遵化市| 曲麻莱县| 九寨沟县| 城市| 开原市| 桐梓县| 讷河市| 神木县| 宁国市| 永昌县| 肥西县| 札达县| 都昌县| 甘肃省| 林西县| 鹤峰县| 仁布县| 泰来县| 眉山市| 奉贤区| 巴中市| 文成县| 红原县| 青田县| 平塘县|