안녕하세요! 오늘은 Swift에서 제공해주는 Sort와 Sorted에 대해서 알아보려고 합니다!
우선 두 메서드는 원소가 Comparable 프로토콜을 만족해야합니다! 그래야 비교가 가능해 정렬할 수 있으니까요! ㅎㅎ
1. Sort와 Sorted 차이점
sort() 메서드는 해당 객체를 sort해주는 것입니다!
//sort Example
var intArray = [3, 1, 2, 5, 4]
intArray.sort()
print(intArray) //[1, 2, 3, 4, 5]
반면, sorted() 메서드는 sort된 객체를 반환해주는 것입니다.
//sorted Example
var intArray = [3, 1, 2, 5, 4]
let sortedIntArray = intArray.sorted()
print(intArray) //[3, 1, 2, 5, 4]
print(sortedIntArray) //[1, 2, 3, 4, 5]
2. Sort 메소드 사용방법
sort, sorted 메소드 정의입니다.
func sort(by: (Element, Element) -> Bool)
func sorted(by: (Element, Element) -> Bool) -> [Element]
파라메터를 비워두면 자동으로 오름차순으로 정렬되지만 custom 해서 사용할 수 있습니다.
5가지 모두 오름차순으로 정렬하는 같은 방법입니다.
var intArray = [3, 1, 2, 5, 4]
intArray.sort()
print(intArray) //[1, 2, 3, 4, 5]
// 내림차순
intArray.sort(by: {(element1:Int, element2:Int) -> Bool in return element1 > element2})
intArray.sort(by: {(element1:Int, element2:Int) -> Bool in element1 > element2})
intArray.sort(by: {$0 > $1})
intArray.sort{$0 > $1}
intArray.sort(by: >)
print(intArray) //[5, 4, 3, 2, 1]
이를 응용하여 dictionary도 정렬이 가능합니다!
Key값을 이용한 정렬
var dictionary:[Int:Int] = [Int:Int]()
dictionary[1] = 2
dictionary[2] = 5
dictionary[3] = 1
dictionary[4] = -1
dictionary[5] = 10
//let answer = dictionary.sorted{$0.key > $1.key}
let answer = dictionary.sorted{$0.0 > $1.0}
//[(key: 5, value: 10), (key: 4, value: -1), (key: 3, value: 1), (key: 2, value: 5), (key: 1, value: 2)]
print(answer)
Value값을 이용한 정렬
var dictionary:[Int:Int] = [Int:Int]()
dictionary[1] = 2
dictionary[2] = 5
dictionary[3] = 1
dictionary[4] = -1
dictionary[5] = 10
// let answer = dictionary.sorted{$0.value > $1.value}
let answer = dictionary.sorted{$0.1 > $1.1}
//[(key: 5, value: 10), (key: 4, value: -1), (key: 3, value: 1), (key: 2, value: 5), (key: 1, value: 2)]
print(answer)
이상으로 sort와 sorted에 대해서 알아보았습니다.
질문이 있으시면 댓글로 남겨주세요!
좋은 하루 되세요!
'Skill Sets > Swift' 카테고리의 다른 글
[Swift]] Swift 5.6 release Unavailable Condition (0) | 2022.03.30 |
---|---|
[XCode] XCode - iOS 개발시 시간을 아껴주는 단축키 (0) | 2022.01.18 |
[Swift] 조건문과 반복문 (0) | 2021.11.25 |
[Swift] 상수와 변수 (0) | 2021.11.24 |
Swift의 시작 (0) | 2021.11.22 |