compare method
Compares two values.
Implementation
@override
int compare(Map<K, V> left, Map<K, V> right) {
if (equality.equals(left, right)) {
return 0;
}
final leftEntries = left.entries.toList();
leftEntries.sort((a, b) {
return keyKind.compare(a.key, b.key);
});
final rightEntries = right.entries.toList();
rightEntries.sort((a, b) {
return keyKind.compare(a.key, b.key);
});
final minLength = min<int>(leftEntries.length, rightEntries.length);
for (var i = 0; i < minLength; i++) {
final a = leftEntries[i];
final b = rightEntries[i];
final r = keyKind.compare(a.key, b.key);
if (r != 0) {
return r;
}
final r2 = valueKind.compare(a.value, b.value);
if (r2 != 0) {
return r2;
}
}
return leftEntries.length.compareTo(rightEntries.length);
}