[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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM