インスタンスメソッド


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 つの要素は 比較不可能 です。ab が比較不可能で、bc が比較不可能である場合、ac も比較不可能です。(推移的比較不可能性)

  • 以下の例では、辞書で max(by:) メソッドを使用して、最も高い値を持つキーと値のペアを見つける方法を示します。


    1. let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
    2. let greatestHue = hues.max { a, b in a.value < b.value }
    3. print(greatestHue)
    4. // Prints "Optional((key: "Heliotrope", value: 296))"

    複雑さ:

    O(n)、ここで、n はシーケンスの長さです。













    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ