zoukankan      html  css  js  c++  java
  • [Swift]数组排序:sort和sorted

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ 
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/9791288.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    sorted只返回一个数组的有序版本,不修改原数组。

    sort无返回值,只会修改原数组。

    定义一个需要排序的数组,其包含元素。示例只初始化一个Int数组。

    var arr:[Int] = [Int]()

    最简数组排序方法

    //升序
    arr = arr.sorted(by:<)
    //降序
    arr = arr.sorted(by:>)

    自定义升序排序方法

    1 func sortArray(num1: Int, num2: Int) -> Bool 
    2 {
    3      return num1 < num2
    4 }

    数组调用方法

    1 //方式1
    2 arr.sort(by: sortArray)
    3 //方式2
    4 arr.sort(by: {(num1: Int, num2: Int) -> Bool in return num1 < num2 })

    闭包可以不指定参数类型,编译器会进行判断

    arr.sort(by: {(num1, num2) in return num1 < num2})

    可以省略参数名,直接根据闭包来引用参数

    arr.sort(by: {return $0 < $1})

    如果闭包只包含一行语句,可以省略return关键字

    arr.sort(by: {$0 < $1})

    如果闭包是函数的最后一个参数,可以将闭包直接放在小括号外面的大括号里。换行也是可选的。

    arr.sort(){$0 < $1}

    甚至可以省略闭包,得最简形式

    arr = arr.sorted(by:<)

     sorted()无参数时默认为升序排序。

    Swift的Set类型没有定义的顺序。

    要以特定顺序迭代集合的值,请使用该sorted()方法,该方法将集合的元素作为使用<运算符排序的数组返回。

    1 for genre in favoriteGenres.sorted() {
    2     print("(genre)")
    3 }
    4 // Classical
    5 // Hip hop
    6 // Jazz
  • 相关阅读:
    luogu P1955 [NOI2015]程序自动分析
    luogu P5514 [MtOI2019]永夜的报应
    bzoj1816[Cqoi2010]扑克牌
    bzoj1040[ZJOI2008]骑士
    bzoj4582[Usaco2016 Open]Diamond Collector
    bzoj1029[JSOI2007]建筑抢修
    bzoj1079[SCOI2008]着色方案
    bzoj1051[HAOI2006]受欢迎的牛
    bzoj4525[Usaco2016 Jan]Angry Cows
    bzoj4512[Usaco2016 Jan] Build Gates
  • 原文地址:https://www.cnblogs.com/strengthen/p/9791288.html
Copyright © 2011-2022 走看看