逆順・昇順・降順・シャッフル・入れ替えなど、Swiftでいろんな条件で配列を再配列する方法を解説します
逆順 reverse(), reversed()
reverse()
配列を逆順に並び替えるときには「reverse()」を使います。
var languages: [String] = ["Swift", "Java", "Ruby", "Javascript", "PHP"]
languages.reverse()
print(languages) //["PHP", "Javascript", "Ruby", "Java", "Swift"]
reversed()
配列をfor文で逆順に回したいときなどには「reversed()」を使います。
let languages: [String] = ["Swift", "Java", "Ruby", "Javascript", "PHP"]
for language in languages.reversed() {
print(language)
}
//PHP
//Javascript
//Ruby
//Java
//Swift
「reversed()」を型変換することで逆順の新しい配列を作成することができます。
let languages: [String] = ["Swift", "Java", "Ruby", "Javascript", "PHP"]
let reversedLanguages = [String](languages.reversed())
print(reversedLanguages) //["PHP", "Javascript", "Ruby", "Java", "Swift"]
昇順・降順 sort()
昇順にソートする場合は「sort()」を使います。
英語だったらアルファベット順、日本語だったらあいうえお順になります。
var languages: [String] = ["Swift", "Java", "Ruby", "Javascript", "PHP"]
languages.sort()
print(languages) //["Java", "Javascript", "PHP", "Ruby", "Swift"]
var numbers: [Int] = [3, 1, 4, 1, 5, 9, 2]
numbers.sort()
print(numbers) //[1, 1, 2, 3, 4, 5, 9]
降順にソートするときは「sort(by: >)」を使います。
var numbers: [Int] = [3, 1, 4, 1, 5, 9, 2]
numbers.sort(by: >)
print(numbers) //[9, 5, 4, 3, 2, 1, 1]
「sorted()」で新しい配列を作成することができます。
let numbers: [Int] = [3, 1, 4, 1, 5, 9, 2]
let sortedNumbers = numbers.sorted()
print(sortedNumbers) //[1, 1, 2, 3, 4, 5, 9]
シャッフル shuffle()
配列をランダムに並び替えるときは「shuffle」を使います。
var numbers: [Int] = [3, 1, 4, 1, 5, 9, 2]
numbers.shuffle()
print(numbers) //[4, 5, 1, 2, 9, 1, 3]
入れ替え swapAt(_:_:)
指定の位置にある要素同士を交換する場合は「swapAt(_:_:)」を使います。
入れ替えたい場所のindex番号を指定します。
var languages: [String] = ["Swift", "Java", "Ruby", "Javascript", "PHP"]
languages.swapAt(0, 2)
print(languages) //["Ruby", "Java", "Swift", "Javascript", "PHP"]