---
title: "max(by:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/substring/unicodescalarview/max(by:)"
---

# max(by:)

Returns the maximum element in the sequence, using the given predicate as the comparison between elements.

## Declaration

```swift
@warn_unqualified_access func max(by areInIncreasingOrder: (Self.Element, Self.Element) throws -> Bool) rethrows -> Self.Element?
```

## Parameters

- `areInIncreasingOrder`: A predicate that returns true if its first argument should be ordered before its second argument; otherwise, false.

## Return Value

Return Value The sequence’s maximum element if the sequence is not empty; otherwise, nil.

## Discussion

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: areInIncreasingOrder(a, a) is always false. (Irreflexivity) If areInIncreasingOrder(a, b) and areInIncreasingOrder(b, c) are both true, then areInIncreasingOrder(a, c) is also true. (Transitive comparability) Two elements are incomparable if neither is ordered before the other according to the predicate. If a and b are incomparable, and b and c are incomparable, then a and c are 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((key: "Heliotrope", value: 296))" note: O(n), where n is the length of the sequence.
