Как сравнить два списка с помощью хеш-кода?
1. Реализация из Java8:
public int hashCode() {
    int hashCode = 1;
    for (E e : this)
        hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
    return hashCode;
}
Из неё видно, что не совпало — у одинаковых списков хэши одинаковые. Но вспомни комбинаторику: если хэши одинаковы, объекты, СКОРЕЕ ВСЕГО, одинаковые, и один хрен нужно глубокое сравнение. Если разные — точно разные.

2. Если просто сравнить два списка — сравнивай обычным equals, ничего ты не выиграешь от хэшей. Один хрен для вычисления хэша придётся пройти по всем данным. Хэши используй, если нужно сравнить, например, 100 объектов попарно — я так сжимал WAD’ы для Doom без потерь и рассинхронизаций демо-роликов. Сначала находил множества потенциально равных блоков, потом вёл глубокое сравнение.
Значит, если будет стоять задача сравнить два списка (одинаковы ли они), то достаточно вычислить хеш двух списков?
Нет. Хэши могут быть одинаковыми просто из-за коллизий. Так что если у тебя совпал hashcode - тебе следует ещё и содержимое на равенство проверить.
Если хэшкод не совпал - тогда они точно разные.
в то время как хеш возьмётся быстрее.
Разве для вычисления хэша не нужно точно также пройтись по всем элементам?
Или хэш кэшируется при добавлении новых элементов в список?