インスタンスメソッド
max(by:)
与えられた述語を要素間の比較として使用して、シーケンス内の最大要素を返します。
System Swift
iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+
macOS 11.0+ tvOS 14.0+
visionOS 1.0+ watchOS 7.0+
@warn_unqualified_access
func max(by areInIncreasingOrder: (Self.Element, Self.Element) throws -> Bool) rethrows -> Self.Element?
パラメータ
areInIncreasingOrder
その最初の引数をその 2 番目の引数の前に並べる必要がある場合は true を返し、それ以外の場合は false を返す述語。
戻り値
シーケンスが空でない場合はシーケンスの最大要素。それ以外の場合は nil です。
議論
述語は、要素に対して 厳密に弱い順序付け でなければなりません。つまり、任意の要素 a、b、c について、以下の条件が満たされていなければなりません。
areInIncreasingOrder(a, a) は常に false です。(非再帰性 )
areInIncreasingOrder(a, b) と areInIncreasingOrder(b, c) が両方とも true である場合、areInIncreasingOrder(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 はシーケンスの長さです。
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ