対象:
Swift3

配列をソートする(Swift)

Arrayのsortメソッドを使うと、その配列自身をソートすることができる。対象の配列は文字列であっても数値であっても良い。sortメソッドに渡す比較演算子(より厳密に言うと演算子関数)によって昇順、または降順を選択できる。例えば、sortメソッドに比較演算子(<)を渡すと配列は昇順にソートされる。

        // sortメソッドは配列そのものをソートする
        var stationery = ["stapler", "pen", "scissors"]
        stationery.sort(by: <)
        for s in stationery {
            print(s)
        }

上記のコードの実行結果は以下になる。

pen
scissors
stapler

コードの可読性を良くしたいなら、sortメソッドに比較演算子でなく、以下のようにクロージャを渡しても良いだろう。

        stationery.sort { $0 < $1 }
        // ↓でも同じ
        // stationery.sort(by: { $0 < $1 })
        // stationery.sort()

sortメソッドではなくsortedメソッドを使うと、その配列自身を複製してソートした配列を得ることができる。つまり、sortedメソッドを使った場合には、元の配列には何ら影響がなく、下記の例のscores配列はletで宣言できる。

        // sortメソッドはソートした新しい配列を返す
        let scores = [100, 300, 200]
        for s in scores.sorted(by: <) {
            print(s)
        }
100
200
300
(2015/02/16)
(2016/10/25 更新) Swift 3.0対応。

新着情報
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)
【iOS Objective-C, Swift Tips】ウィンドウの階層構造を3D表示する(Swift)

Copyright(C) 2004-2016 モバイル開発系(K) All rights reserved.
[Home]