Конкретное реализация hashCode() для List в Android (как и в стандартной Java) определяется контрактом Collection. По умолчанию, хеш-код списка вычисляется итеративным сложением хеш-кодов элементов, умноженных на множитель, с учетом порядка элементов.
Формула выглядит примерно так:
plaintext
Где 31 - это выбранный множитель (простое число, которое хорошо распределяет хеш-коды).
Важно отметить, что эта формула не гарантируется как единственная возможная реализация. Контракт Collection.hashCode() определяет только, что:
equals(), то их хеш-коды должны быть равны.equals(), их хеш-коды могут быть равны (но лучше, если они будут разными для эффективности хеш-таблиц).Поэтому, хотя приведенная выше формула является типичной, полагаться на ее конкретное значение в тесте или продакшене не стоит. Следует полагаться только на контракт Collection.hashCode().