<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 區間、數組、集合之間轉換 在Kotlin中區間、數組、集合都是描述一系列元素的集合。通過上面的學習,我們看到它們有不同的地方,也有相似的地方。其實只要把其中一個的學習思路把握了。學習其他依葫蘆畫瓢的事情。 實際上,區間、數組、集合之間還可以相互轉換。 ### Range轉Array、List、Set 區間可以轉數組,也可以轉List和Set集合。轉數組通過arrayOf方法,轉List通過toList方法,轉Set通過toSet方法。 arrayOf方法,可以接收區間參數,返回數組,參考簽名: ```java public inline fun <reified @PureReifiable T> arrayOf(vararg elements: T): Array<T> ``` toList方法,轉換為List,參考簽名: ```java public fun <T> Iterable<T>.toList(): List<T> { } ``` toSet方法,返回Set,參考簽名: ```java public fun <T> Iterable<T>.toSet(): Set<T> { } ``` 我們通過一個案例來驗證下,參考代碼: ~~~ fun main(args: Array<String>) { val intRange = 1..10 //Range->Array val arr = arrayOf(intRange) println(arr) //Range->List val list = intRange.toList() println("轉換后的list集合:$list") //Range->Set val set = intRange.toSet() println("轉換后的set集合:$set") } ~~~ 運行結果 ``` [Lkotlin.ranges.IntRange;@4d7e1886 轉換后的list集合:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 轉換后的set集合:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Process finished with exit code 0 ``` ### Array轉List、Set 數組可以轉List和Set集合。轉List通過toList方法,轉Set通過toSet方法。 toList方法,轉換為List,參考簽名: ```java public fun <T> Iterable<T>.toList(): List<T> { } ``` toSet方法,返回Set,參考簽名: ```java public fun <T> Iterable<T>.toSet(): Set<T> { } ``` 我們通過一個案例來驗證下,參考代碼: ~~~ fun main(args: Array<String>) { val array = arrayOf(1, 2, 3, 4) val newList = array.toList() println(newList) val newSet = array.toSet() println(newSet) } ~~~ 運行結果 ``` [1, 2, 3, 4] [1, 2, 3, 4] Process finished with exit code 0 ``` ### List轉Array和Set List可以轉Array和Set集合。轉Array通過toIntArray和toTypedArray,轉Set通過toSet方法。 toIntArray方法,轉換為Int數組,方法簽名: ```java public fun Collection<Int>.toIntArray(): IntArray { } ``` toTypedArray方法,根據List中包含元素的類型轉換為對應的集合,如果是List<String>轉換為String數組,如果是List<Int>轉換為Int數組,方法簽名: ![](http://upload-images.jianshu.io/upload_images/7368752-a6dbd9178574feba.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 這里用到了關鍵字**reified**,這個是在泛型里面會接受的知識點。 toSet方法,返回Set,參考簽名: ```java public fun <T> Iterable<T>.toSet(): Set<T> { } ``` 我們通過一個案例來驗證下,參考代碼: ~~~ fun main(args: Array<String>) { val list = listOf(1,2,3,4,5) val intArray = list.toIntArray() println(intArray.toList()) val newArray = list.toTypedArray() println(newArray.toList()) val newSet2 = list.toSet() println(newSet2) } ~~~ 運行結果 ``` [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] Process finished with exit code 0 ``` ### Set轉Array和List Set可以轉Array和List集合。轉Array通過toIntArray和toTypedArray,轉List通過toList方法。 toIntArray方法,轉換為Int數組,方法簽名: ```java public fun Collection<Int>.toIntArray(): IntArray { ?} ``` toTypedArray方法,根據List中包含元素的類型轉換為對應的集合,如果是List<String>轉換為String數組,如果是List<Int>轉換為Int數組,方法簽名: ![](http://upload-images.jianshu.io/upload_images/7368752-8af381cc95d3cdcd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 這里用到了關鍵字**reified**,這個是在泛型里面會接受的知識點。 toSet方法,返回Set,參考簽名: ```java public fun <T> Iterable<T>.toSet(): Set<T> { } ``` 我們通過一個案例來驗證下,參考代碼: ~~~ fun main(args: Array<String>) { val set = setOf(1, 2, 3, 4, 5) val intArray = set.toIntArray() println(intArray.toList()) val array = set.toTypedArray() println(array.toList()) val list = set.toList() println(list) } ~~~ 運行結果 ``` [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] Process finished with exit code 0 ``` ### Map轉Array、List和Set Map可以直接轉List集合,那么List中所轉元素的類型就是Pair。Map想要轉Array、List和Set只能先獲取map的keys或者values進行換行。所用的方法還是之前提到的toList、toSet、toTypedArray,所以這里就不做過多解釋了,直接演示下例子: ~~~ fun main(args: Array<String>) { val map = mutableMapOf("a" to 1, "b" to 2, "c" to 3) val values = map.values val keys = map.keys val array = values.toTypedArray() println(array.toList()) val list = values.toList() println(list) val set = values.toSet() println(set) val arr = keys.toTypedArray() println(arr.toList()) val newList = keys.toList() println(newList) val newSet = keys.toSet() println(newSet) println("---------key 和 values 轉換為其他---------") val list1 = map.toList() for (pair in list1) { println("${pair.first}->${pair.second}") } } ~~~ 運行結果 ``` [1, 2, 3] [1, 2, 3] [1, 2, 3] [a, b, c] [a, b, c] [a, b, c] ---------key 和 values 轉換為其他--------- a->1 b->2 c->3 Process finished with exit code 0 ``` ?
                  <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>

                              哎呀哎呀视频在线观看