<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 功能強大 支持多語言、二開方便! 廣告
                [TOC] ### set集合常見方法和屬性 set集合可以理解為是一個容器,容器操作我們自然想到“增刪改查”,可寫集合才有“增刪改查”,不可寫集合只有“查”,這個點我們可以想到。但是set集合無序,所以沒有“改查”,因為某個位置上是什么元素是不確定。 #### 添加元素:add、addAll ![](http://upload-images.jianshu.io/upload_images/7368752-5ca85ee73377e219.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 相比于list集合的添加,少了在指定位置添加單個元素和多個元素的方法,因為set集合是無序的,無法指定添加位置。 我們編寫一個案例,驗證下,參考代碼: ~~~ fun main(args: Array<String>) { val set = hashSetOf(1, 2, 3) //追加元素 val isSuccess = set.add(4) println(set) println("添加元素成功:${isSuccess}") //批量添加一個集合 set.addAll(listOf(11, 22)) println(set) //批量添加一個數組 set.addAll(arrayOf(111, 222)) println(set) } ~~~ 運行結果 ``` [1, 2, 3, 4] 添加元素成功:true [1, 2, 3, 11, 4, 22] [1, 2, 3, 4, 22, 11, 222, 111] Process finished with exit code 0 ``` 針對以上代碼,我們看到調用addAll方法后,**打印set集合的時候,元素變成了無序**。 #### 刪除元素:remove、removeAll 刪除元素,主要有如下幾種方式: ![](http://upload-images.jianshu.io/upload_images/7368752-a0571e4b17a5fc95.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 相比于list,少了刪除指定位置元素的方法 我們編寫一個案例,驗證下上面這些方法,參考代碼: ~~~ fun main(args: Array<String>) { val set = hashSetOf(1, 2, 3) //追加元素 val isSuccess = set.add(4) println(set) println("添加元素成功:${isSuccess}") //批量添加一個集合 set.addAll(listOf(11, 22)) println(set) //批量添加一個數組 set.addAll(arrayOf(111, 222)) println(set) //刪除指定元素 val isDelete = set.remove(222) println("刪除元素222是否成功:${isDelete}") println(set) //批量刪除,傳遞集合 set.removeAll(listOf(11, 4)) println(set) //批量刪除,傳遞數組 set.removeAll(arrayOf(2, 111)) println(set) } ~~~ 運行結果 ``` [1, 2, 3, 4] 添加元素成功:true [1, 2, 3, 11, 4, 22] [1, 2, 3, 4, 22, 11, 222, 111] 刪除元素222是否成功:true [1, 2, 3, 4, 22, 11, 111] [1, 2, 3, 22, 111] [1, 3, 22] Process finished with exit code 0 ``` #### 修改元素:不支持 set集合沒有位置的概念,所以,無法確定某一個位置的元素到底是什么,所以無法進行修改。參考截圖: ![](http://upload-images.jianshu.io/upload_images/7368752-15f08b6131b94112.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) #### 查詢元素:elementAt、elementAtOrNull set集合根據索引位置獲取元素,不是通過get方法,通過elementAt方法和elementAtOrNull方法。 ![](http://upload-images.jianshu.io/upload_images/7368752-00c79fba104bf5b6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 我們通過一個案例,演示下兩個api,參考代碼: ~~~ fun main(args: Array<String>) { val set = mutableSetOf(1, 2, 3, 4, 1)//不重復,有序 var element: Int? = set.elementAt(1) println("第2個位置的元素是:${element}") element = set.elementAtOrNull(3) println("第4個位置的元素是:${element}") element = set.elementAtOrNull(14) println("第15個位置的元素是:${element}") } ~~~ 運算結果 ``` 第2個位置的元素是:2 第4個位置的元素是:4 第15個位置的元素是:null Process finished with exit code 0 ``` #### 是否包含元素:contains方法、containsAll方法 contains方法用于判斷集合中是否存包含某個元素,方法接收參數為元素,返回值Boolean類型,方法定義如下: ~~~ public operator fun contains(element: @UnsafeVariance E): Boolean ~~~ contains方法用于判斷集合中是否存包含多個元素,方法接收一個集合,返回值Boolean類型,方法定義如下: ~~~ public fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean ~~~ 我們通過一個案例,來看看集合元素是否包含操作,參考代碼: ~~~ fun main(args: Array<String>) { val set = mutableSetOf(1, 2, 3, 4, 1)//不重復,有序 println("set集合的長度是:${set.size}") println("set集合的長度是:${set.count()}") var index = set.indexOf(1) println("元素1的正向索引是:${index}") index = set.indexOf(11) println("元素11的正向索引是:${index}") index = set.lastIndexOf(4) println("元素4的反向索引是:${index}") var element: Int? = set.elementAt(1) println("第2個位置的元素是:${element}") element = set.elementAtOrNull(3) println("第4個位置的元素是:${element}") element = set.elementAtOrNull(14) println("第15個位置的元素是:${element}") //是否包含元素 var isContains = set.contains(3) println("是否包含元素3:${isContains}") //是否包含集合 isContains = set.containsAll(listOf(1, 2, 3)) println("是否包含集合[1,2,3]:${isContains}") isContains = set.containsAll(listOf(11, 22, 3)) println("是否包含集合[11,22,3]:${isContains}") } ~~~ 運算結果 ``` set集合的長度是:4 set集合的長度是:4 元素1的正向索引是:0 元素11的正向索引是:-1 元素4的反向索引是:3 第2個位置的元素是:2 第4個位置的元素是:4 第15個位置的元素是:null 是否包含元素3:true 是否包含集合[1,2,3]:true 是否包含集合[11,22,3]:false Process finished with exit code 0 ``` #### 獲取元素索引:indexOf方法 set集合可以通過indexOf、lastIndexOf獲取索引。 indexOf()獲取元素對應的位置,從集合開始位置開始查找,找到返回索引,沒有找到返回-1。方法簽名如下: ```java public fun indexOf(element: @UnsafeVarianceE): Int ``` lastIndexOf獲取元素對應的位置,從集合結束位置開始查找,找到返回索引,沒有找到返回-1。方法簽名如下: ```java publicfun lastIndexOf(element: @UnsafeVariance E): Int ``` 我們通過一個案例,來看看集合的是否包含,參考代碼: ~~~ fun main(args: Array<String>) { val set = mutableSetOf(1, 2, 3, 4, 1)//不重復,有序 var index = set.indexOf(1) println("元素1的正向索引是:${index}") index = set.indexOf(11) println("元素11的正向索引是:${index}") index = set.lastIndexOf(4) println("元素4的反向索引是:${index}") } ~~~ 運算結果 ``` 元素1的正向索引是:0 元素11的正向索引是:-1 元素4的反向索引是:3 Process finished with exit code 0 ``` #### 獲取數組長度:size屬性、count方法 同數組,同list集合,獲取長度可以通過size屬性和count方法去獲取,參考代碼: ~~~ fun main(args: Array<String>) { val set = mutableSetOf(1, 2, 3, 4, 1)//不重復,有序 println("set集合的長度是:${set.size}") println("set集合的長度是:${set.count()}") } ~~~ 運算結果 ``` set集合的長度是:4 set集合的長度是:4 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>

                              哎呀哎呀视频在线观看