[Swift]辞書(Dictionary)の最大値を取得するには?

Swift

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

辞書の最大値を取得する方法を紹介します。

スポンサーリンク

方法

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

辞書の最大値を取得する方法は、3つあります。

キーの最大

1つ目は、キーの最大値を取得する方法です。

まず、辞書のkeysプロパティにアクセスします。

そして、keysプロパティからmaxメソッドを呼び出します。

dict.keys.max()

上記のmaxメソッドは、辞書のキーの最大値を返します。

maxメソッドは、引数「by」を使うことで、特定の条件による比較ができます。

使用例

let nums = [
    1 : "one",
    2 : "two",
    3 : "three",
    10 : "ten",
]

print(nums.keys.max()!) //10

値の最大値

2つ目は、値の最大値を取得する方法です。

まず、辞書からvaluesプロパティにアクセスします。

そして、valuesプロパティからmaxメソッドを呼び出します。

dict.values.max()

上記のmaxメソッドは、辞書の値の最大値を返します。

使用例

let numbers = [
    "one" : 1,
    "two" : 2,
    "three" : 3,
    "four" : 4,
    "five" : 5,
]

print(numbers.values.max()!) //5

ペア(キーと値)の最大値

3つ目は、キーと値のペアの最大値を取得する方法です。

まず、辞書からmaxメソッドを呼び出します。

maxメソッドのクロージャーには、2つの引数を持たせます。

そして、maxメソッドのクロージャーで最大値を求めるための比較式を返します。

dict.max { (a, b) in 比較式 }

上記のmaxメソッドは、比較式から算出した辞書の最大値を要素ごとタプルで返します。

使用例

let numbers = [
    "one" : 1,
    "two" : 2,
    "three" : 3,
    "four" : 4,
    "five" : 5,
    "ten" : 10
]

print(numbers.max { (a, b) in a.value < b.value }! ) //(key: "ten", value: 10)

まとめ

辞書の最大値を取得する方法は、次の3つです。

  • キーの最大値を取得する方法
  • 値の最大値を取得する方法
  • ペアの最大値を取得する方法

コメント

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