Returns the maximum element in the sequence, using the given predicate as the comparison between elements.
SDK
- Xcode 9.0+
Framework
- Swift Standard Library
Declaration
Parameters
areInIncreasingOrderA predicate that returns
trueif its first argument should be ordered before its second argument; otherwise,false.
Return Value
The sequence’s maximum element if the sequence is not empty; otherwise, nil.
Discussion
The predicate must be a strict weak ordering over the elements. That is, for any elements a, b, and c, the following conditions must hold:
areis alwaysIn Increasing Order(a, a) false. (Irreflexivity)If
areandIn Increasing Order(a, b) areare bothIn Increasing Order(b, c) true, thenareis alsoIn Increasing Order(a, c) true. (Transitive comparability)Two elements are incomparable if neither is ordered before the other according to the predicate. If
aandbare incomparable, andbandcare incomparable, thenaandcare also incomparable. (Transitive incomparability)
This example shows how to use the max(by:) method on a dictionary to find the key-value pair with the highest value.
let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
let greatestHue = hues.max { a, b in a.value < b.value }
print(greatestHue)
// Prints "Optional(("Heliotrope", 296))"
Complexity: O(n), where n is the length of the sequence.