Как отметил Джон Скит, это совершенно разные структуры. Карта (например, HashMap) - это отображение одного значения в другое, т. Е. У вас есть ключ, который сопоставляется со значением в виде «ключ-> значение». Ключ хешируется и помещается в массив для быстрого поиска.
Список, с другой стороны, представляет собой набор элементов с порядком - ArrayList использует массив в качестве внутреннего механизма хранения, но это не имеет значения. Каждый проиндексированный элемент является отдельным элементом в списке.
изменить: на основе вашего комментария я добавил следующую информацию:
Ключ хранится в хэш-карте. Это потому, что хеш не гарантированно будет уникальным для любых двух разных элементов. Таким образом, ключ должен храниться в случае коллизий хэширования. Если вы просто хотите увидеть, существует ли элемент в наборе элементов, используйте Set (стандартной реализацией этого является HashSet). Если порядок имеет значение, но вам нужен быстрый поиск, используйте LinkedHashSet, поскольку он сохраняет порядок вставленных элементов. Время поиска равно O (1) на обоих, но время вставки на LinkedHashSet немного больше. Используйте карту только в том случае, если вы на самом деле отображаете одно значение в другое - если у вас просто есть набор уникальных объектов, используйте набор, если у вас есть упорядоченные объекты, используйте список.