В зависимости от того, что именно вы хотите сделать, вы можете обнаружить, что просто использование обычного Java hashCode () с помощью функции "hash" проще, чем попытка использовать SHA:
(hash {:a "hoho" :b "hehe"})
=> 2025831869
(hash {:a "hoho" :b "hihi"})
=> 2025836181
В большинстве случаев этого достаточно, чтобы определить, отличаются ли две карты.
Обратите внимание, что ни SHA, ни любой другой хэш-код не гарантируют равенство, когда два объекта имеют одинаковый хэш - многие объекты могут потенциально иметь одинаковый хэш. Как следствие, если хеш-код одинаков, вам все равно придется проверить, равны ли два объекта по значению
Также помните, что вычислительные хэши * на 1008 * дороже , чем простое сравнение с использованием =. Поэтому имеет смысл использовать технику хэширования, только если вы можете сохранить значение хэша и использовать его повторно для многих сравнений.