Списки представляют последовательный порядок элементов.Карты используются для представления набора пар ключ / значение.
Хотя вы можете использовать карту в качестве списка, в этом есть определенные недостатки.
Поддержание порядка: - список по определению упорядочен.Вы добавляете элементы, а затем вы можете выполнять итерацию по списку в том порядке, в котором вы вставили элементы.Когда вы добавляете элементы в HashMap, вы не гарантированно извлекаете элементы в том же порядке, в котором вы их поместили. Существуют подклассы HashMap, такие как LinkedHashMap, которые будут поддерживать порядок, но в общем порядке с Map не гарантируется.
Семантика ключа / значения: - Цель карты - хранить элементы на основе ключа, который можно использовать для получения элемента в более поздней точке.Подобные функциональные возможности могут быть достигнуты только с помощью списка в ограниченном случае, когда ключом оказывается позиция в списке.
Читаемость кода Рассмотрим следующие примеры.
// Adding to a List
list.add(myObject); // adds to the end of the list
map.put(myKey, myObject); // sure, you can do this, but what is myKey?
map.put("1", myObject); // you could use the position as a key but why?
// Iterating through the items
for (Object o : myList) // nice and easy
for (Object o : myMap.values()) // more code and the order is not guaranteed
Функциональность коллекции Некоторые замечательные функции полезности доступны для списков через класс Collections.Например ...
// Randomize the list
Collections.shuffle(myList);
// Sort the list
Collections.sort(myList, myComparator);
Надеюсь, это поможет,