<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                在前面的部分了解了第一個容器,也就是數組。在`Java`中有各種`List`、`Set`和`Map`各類容器,對應的在`Kotlin`中也有對應的實現。 # 1. 數組 ## 1.1 簡單訪問 ~~~ fun main() { var a = arrayOf("Hello", "Bold", "!") println(a) for(i in a){ println(i) } } ~~~ 和前面介紹的數組區別之處在于這里所使用的不再是`6`中基本數據類型,而是使用的`String`類型。結果如下: ``` [Ljava.lang.String;@4b67cf4d Hello Bold ! ``` 也就是直接打印數組的時候不再可以直接顯示元素 ,而是打印其地址。 ## 1.2 獲取下標 ~~~ fun main() { var a = arrayOf("Hello", "Bold", "!") println(a) for((index, i) in a.withIndex()){ println("下標${index}對應的值為${i}.") } } ~~~ 結果: ``` [Ljava.lang.String;@4b67cf4d 下標0對應的值為Hello. 下標1對應的值為Bold. 下標2對應的值為!. ``` ## 1.3 查找和替換 可以直接使用下標來訪問: ~~~ fun main() { var a = arrayOf("Hello", "Bold", "!") println(a[0]) a[0] = "Job" for (s in a) { println(s) } } ~~~ 結果: ``` Hello Job Bold ! ``` 也可以使用內置的函數: ~~~ fun main() { var a = arrayOf("Hello", "Bold", "!") var index = a.indexOf("Hello") a.set(index, "Job") for (s in a) { println(s) } } ~~~ 結果: ``` Job Bold ! ``` 這種方式比較適合于程序員不知道數組數據的情況。 # 2. List接口 `List`接口繼承自`Collection`接口,分為可變集合`MutableList`(`Read`&`Write`,`Mutable`)和不可變集合`List`(`ReadOnly`,`Immutable`)。不可變集合`List`對集合中的元素僅提供只讀操作。 ## 2.1 不可變List 不可變列表,只有`size`屬性和`get()`函數。不可變`List`是通過`listOf()`函數創建的,該函數可以創建空的`List`,也可以創建包含一個或多個元素的`List`。比如: ~~~ fun main() { var a : List<Int> = listOf(1, 5, 3) var b = listOf<Int>(0, 1, 2, 3, 4, 5) println(b.containsAll(a)) println(b.contains(4)) } ~~~ 結果: ``` true true ``` 從上面可以看出: - 使用`List`的`containsAll`方法意思就是判斷該`List`中是否包含另一個`List`中的所有元素,和元素順序無關; 對于其元素的**遍歷**,`List`中也提供了迭代器,使用方式和`Java`中的一致。比如下面的案例: ~~~ fun main() { var b = listOf<Int>(0, 1, 2, 3, 4, 5) val iterator = b.iterator() while(iterator.hasNext()){ println(iterator.next()) } } ~~~ ## 2.2 可變MutableList 對于可變列表就不再僅僅支持查詢操作,可以進行添加、刪除和修改。比如下面的案例: ~~~ fun main() { var b = mutableListOf<Int>(1, 2, 3) b.add(4) printList(b) b.remove(3) printList(b) b[0] = 100 printList(b) } fun printList(b: MutableList<Int>) { val iterator = b.iterator() while(iterator.hasNext()){ print("${iterator.next()}\t") } println() } ~~~ 結果: ``` 1 2 3 4 1 2 4 100 2 4 ``` # 3. Set接口 和`Java`中一樣,`Set`接口中的元素是無序的,并且元素不可重復,重復的元素只會被記錄一次。在`Kotlin`中同樣分為可變集合`MutableSet`與不可變集合`Set`。 # 4. Map接口 `Map`集合中的元素是無序可重復的,`Map`集合與`List`、`Set`集合類似,同樣分為不可變集合`Map`和可變集合`MutableMap`兩種,其中可變集合`MutableMap`可以對集合中的元素進行增加和刪除的操作,不可變集合`Map`對集合中的元素僅提供只讀操作。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看