インスタンスメソッド
max(by:)
要素間の比較として、与えられた述語を使用して、シーケンス内の最大の要素を返します。
iOS 15.0+ iPadOS 15.0+ macOS 12.0+
Mac Catalyst 15.0+
tvOS 15.0+ watchOS 8.0+ visionOS 1.0+
Xcode 13.0+
パラメータ
areInIncreasingOrder
最初の引数が 2 番目の引数の前に順序付けされるべき場合に true を返す述語。それ以外の場合は false。
戻り値
シーケンスが空でない場合はシーケンスの最大要素。それ以外の場合は nil。
議論
述語は、要素に対して 厳密に弱い順序付け でなければなりません。つまり、任意の要素 a、b、c について、以下の条件が満たされなければなりません。
areInIncreasingOrder(a, a) は常に false です。(非再帰性)
areInIncreasingOrder(a, b) と areInIncreasingOrder(b, c) が両方とも true の場合、areInIncreeasingOrder(a, c) も true です。 (推移比較可能性)
2 つの要素は、どちらも述語に従って他方より前に順序付けされていない場合、比較できません。a と b が比較できず、b と c も比較不できない場合、a と c も比較できません。(推移比較不可能性)
以下の例では、辞書で max(by:) メソッドを使用して、最大値を持つキー値のペアを検索する方法を示しています。
- let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
- let greatestHue = hues.max { a, b in a.value < b.value }
- print(greatestHue)
- // Prints "Optional((key: "Heliotrope", value: 296))"
複雑さ:O(n)、ここで n はシークエンスの長さです。
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ