ArrayList
和 HashMap
是 Java 中常用的两个集合类。尽管两者都是集合框架的一部分,但它们存储和处理数据的方式却完全不同。在这篇文章中,我们将看到这两个集合之间的主要区别。
Java 中的ArrayList
与HashMap
1)实现:ArrayList
实现List
接口,而HashMap
是Map
接口的实现。List
和Map
是两个完全不同的集合接口。
2)内存消耗:ArrayList
单独存储元素的值,并在内部维护每个元素的索引。
HashMap
存储键值对。对于每个值,必须在HashMap
中关联一个键。这清楚地表明,与ArrayList
相比,HashMap
中的内存消耗很高。
3) 顺序 :ArrayList
维护插入顺序,而HashMap
则没有。这意味着ArrayList
以与插入列表相同的顺序返回列表项。另一方面,HashMap
不维护任何顺序,返回的键值对不按任何顺序排序。
4)重复:ArrayList
允许重复元素,但HashMap
不允许重复键(它允许重复值)。
5) 空值 :ArrayList
可以包含任意数量的null
元素。HashMap
允许一个空键和任意数量的空值。
6) get
方法:在ArrayList
中我们可以通过指定它的索引得到元素。在HashMap
中,通过指定相应的键来获取元素。