在爪哇,ArrayList
and HashMap
被用作集合。但我不明白我们应该在哪些情况下使用ArrayList
以及使用时间HashMap
。他们两者之间的主要区别是什么?
您具体询问的是 ArrayList 和 HashMap,但我认为要完全理解正在发生的事情,您必须了解集合框架。因此,ArrayList 实现了 List 接口,HashMap 实现了 Map 接口。所以真正的问题是你什么时候想使用 List,什么时候想使用 Map。这就是 Java API 文档提供很大帮助的地方。
List:
有序集合(也称为
顺序)。该界面的使用者
可以精确控制其中的位置
列出每个插入的元素。这
用户可以通过其访问元素
整数索引(列表中的位置),
并在列表中搜索元素。
Map:
将键映射到值的对象。 A
映射不能包含重复的键;
每个键最多可以映射到一个值。
因此,正如其他答案所讨论的那样,列表接口(ArrayList)是使用索引访问的对象的有序集合,非常类似于数组(就 ArrayList 而言,顾名思义,它只是背景,但处理数组的许多细节都为您处理了)。当您想要按排序顺序(添加对象的顺序,或者添加对象时指定的列表中的位置)保存内容时,您可以使用 ArrayList。
另一方面,Map 接受一个对象并将其用作另一个对象(值)的键(索引)。假设您有具有唯一 ID 的对象,并且您知道在某个时刻您将希望通过 ID 访问这些对象,Map 将使您变得非常容易(并且更快/更高效)。 HashMap 实现使用键对象的哈希值来定位它的存储位置,因此不再保证值的顺序。然而,Java API 中还有其他类可以提供此功能,例如LinkedHashMap 除了使用哈希表来存储键/值对之外,还按照键的添加顺序维护键的列表 (LinkedList),因此您始终可以按照添加顺序再次访问项目(如果需要的话)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)