ArrayList 与 HashSet

HashSet 和 ArrayList 是 Java 集合框架中最重要的类之一。以下是 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, 允许任何 null 元素。
HashSet 只允许一个 null 值。


References: