[Swift]配列をソートするには?

Swift

どうも、ちょげ(@chogetarou)です。

Swiftで配列の要素を並び替える方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列をソートする方法は、2つあります。

sortメソッド

1つは、sortメソッドを使う方法です。

具体的には、ソートしたい配列で、sortメソッドを呼び出します。

array.sort() //配列「array」をソート

sortメソッドが呼び出された配列は、ソートされます。

sortメソッドで比べる対象を指定するには、クロージャーを使います。

具体的には、sortの後に「{}」を指定し、「{}」に比較に使う条件式を指定します。

var names : [String] = [
    "Taro",
    "Jiro",
    "Saburo",
    "Siro"
]

names.sort {
    $0.count < $1.count //比較の条件式
}

print(names) //出力 ["Taro", "Jiro", "Siro", "Saburo"]

「{}」内では、比較する2つの要素を、「$0」と「$1」で表現します。

sorted

もう1つは、sortedメソッドを使う方法です。

具体的には、ソートしたい配列でsortedメソッドを呼び出します。

sortedメソッドは、呼び出した配列をソートした配列を戻り値として返します。
(ソートを呼び出した配列には、影響を与えません)

var sortArray = array.sorted() //ソートした配列を戻り値として返す

sortedメソッドを使えば、元の配列に影響を与えずソートした結果だけを取得できます。

sortedメソッドで比べる対象を指定するには、クロージャーを使います。

具体的には、sortedの後に「{}」を指定し、「{}」に比較に使う条件式を指定します。

var names : [String] = [
    "Taro",
    "Jiro",
    "Saburo",
    "Siro"
]

var sortedArray = names.sorted {
    $0.count < $1.count //比較の条件式
}

print(sortedArray) //出力 ["Taro", "Jiro", "Siro", "Saburo"]

「{}」内では、比較する2つの要素を、「$0」と「$1」で表現します。

まとめ

配列をソートするには。次の2つのメソッドを使います。

  • sort : 呼び出した配列をソート
  • sorted : 呼び出した配列をソートした結果を戻り値で返す

コメント

タイトルとURLをコピーしました