ArrayList против HashSet

HashSet и ArrayList являются одними из наиболее важных классов в инфраструктуре Java Collection. Ниже приведены некоторые различия между HashSet и ArrayList.

Implementation:

Основное различие между ArrayList и HashSet заключается в том, что ArrayList является реализацией интерфейса List, а HashSet — реализацией интерфейса Set.

Internal implementation

ArrayList использует массив для хранения своих элементов.
HashSet использует для своей реализации хеш-карту.

Порядок элементов

ArrayList сохраняет порядок элементов, из которых они вставляются.
HashSet не сохраняет порядок элементов.

Duplication

ArrayList допускает дублирование значений.
HashSet не допускает дублирования значений.

Performance
ArrayList использует индекс для повышения производительности, вызывая метод get(index) для получения элемента и remove(index) для удаления элемента.
HashSet полностью основан на объекте и не предоставляет метод get.

Null object

In ArrayList, допускается любой нулевой элемент.
HashSet допускает только одно нулевое значение.


References: