美文网首页
访问和操作数组:重排操作

访问和操作数组:重排操作

作者: 一个栗 | 来源:发表于2021-07-04 11:37 被阅读0次

    数组元素的随机化

    • shuffle() 在元数组上将数组元素打乱,只能作用在数组变量上。
    • shuffled() 返回原数组的随机化数组,可以作用在数组变量和常量上。
    var array = [Int](1...8)
    array.shuffle()
    print(array)
    
    运行结果如下:
    [5, 4, 8, 7, 6, 1, 2, 3]
    
    var array = [Int](1...8)
    var array2 = array.shuffled()
    print(array2)
    
    运行结果如下:
    [3, 8, 2, 5, 7, 4, 6, 1]
    

    可应用在歌单播放

    数组的逆序

    • reverse() 在原数组上将数组逆序,只能作用在数组变量上。
    • reversed() 返回原数组的逆序“集合表示”,可以作用在数组变量和常量上,该方法不会分配新内存空间。
    var array = [Int](1...8)
    array.reverse()
    print(array)
    
    运行结果如下:
    [8, 7, 6, 5, 4, 3, 2, 1]
    
    var array = [Int](1...8)
    var array2 = array.reversed()
    print(array)
    print(array2)
    for i in array2 {
        print(i)
    }
    
    运行结果如下:
    [1, 2, 3, 4, 5, 6, 7, 8]
    ReversedCollection<Array<Int>>(_base: [1, 2, 3, 4, 5, 6, 7, 8])
    8
    7
    6
    5
    4
    3
    2
    1
    

    数组的分组

    • partition 将数组以某个条件分组,数组前半部分是都是不符合条件的元素,数组后半部分都是符合条件的元素。
    var array = [10,20,45,30,98,101,30,4]
    let index = array.partition(by: { $0 > 30 })
    print(array)
    let partition1 = array[..<index]
    let partition2 = array[index...]
    print(partition1)
    print(partition2)
    
    运行结果如下:
    [10, 20, 4, 30, 30, 101, 98, 45]
    [10, 20, 4, 30, 30]
    [101, 98, 45]
    

    数组的排序

    • sort() 在原数组上将数组排序,只能作用于数组变量。
    • sorted() 返回原数组的排序结果数组,可以作用在数组变量和常量上。
    var array = [10,20,45,30,98,101,30,4]
    array.sort()
    print(array)
    
    运行结果如下:
    [4, 10, 20, 30, 30, 45, 98, 101]
    
    var array = [10,20,45,30,98,101,30,4]
    var array2 = array.sorted()
    print(array2)
    
    运行结果如下:
    [4, 10, 20, 30, 30, 45, 98, 101]
    

    交换数组两个元素

    • swapAt(::) 交换指定位置的两个元素
    var array = [10,20,45,30,98,101,30,4]
    array.swapAt(array.startIndex, array.endIndex - 1)
    print(array)
    
    运行结果如下:
    [4, 10, 20, 30, 30, 45, 98, 101]
    

    相关文章

      网友评论

          本文标题:访问和操作数组:重排操作

          本文链接:https://www.haomeiwen.com/subject/yiymultx.html