当前位置: 首页 > 面试题库 >

Java中的HashMap和ArrayList之间的区别?

冯卓
2023-03-14
问题内容

在Java中,ArrayListHashMap作为收藏。但是我不知道在什么情况下应该使用ArrayList什么时间HashMap。两者之间的主要区别是什么?


问题答案:

您正在专门询问ArrayList和HashMap,但我认为要完全了解发生了什么,您必须了解Collections框架。因此,ArrayList实现List接口,而HashMap实现Map接口。因此,真正的问题是您何时要使用列表以及何时要使用地图。这是Java
API文档有很大帮助的地方。

清单:

有序集合(也称为序列)。该界面的用户可以精确控制列表中每个元素的插入位置。用户可以通过其整数索引(列表中的位置)访问元素,并在列表中搜索元素。

地图:

将键映射到值的对象。映射不能包含重复的键;每个键最多可以映射到一个值。

因此,正如其他答案所讨论的那样,列表接口(ArrayList)是使用索引访问的对象的有序集合,就像数组一样(就如ArrayList一样,顾名思义,它只是数组中的一个数组)。背景,但处理数组的许多细节已为您处理)。当您要按排序顺序(添加顺序,或者添加对象时指定的列表中的位置)时,可以使用ArrayList。

另一方面,Map接受一个对象,并将其用作另一个对象(值)的键(索引)。因此,假设您有具有唯一ID的对象,并且您知道将要在某个时候通过ID访问这些对象,Map将使您非常容易(并且更快/更高效)。HashMap实现使用键对象的哈希值来定位它的存储位置,因此不再保证值的顺序。但是,Java
API中还有其他类可以提供此功能,例如LinkedHashMap,它还使用哈希表存储键/值对,还按添加键的顺序维护键的列表(LinkedList),因此您始终可以按添加顺序再次访问这些项目(如果需要)。



 类似资料:
  • 本文向大家介绍Java中HashMap和Hashtable之间的区别,包括了Java中HashMap和Hashtable之间的区别的使用技巧和注意事项,需要的朋友参考一下 Hashtable是原始java.util的一部分,是Dictionary的具体实现。但是,Java 2重新设计了Hashtable,使其也实现了Map接口。因此,哈希表现在已集成到集合框架中。它类似于HashMap,但已同步。

  • 本文向大家介绍Java中的HashMap和HashSet之间的区别。,包括了Java中的HashMap和HashSet之间的区别。的使用技巧和注意事项,需要的朋友参考一下 HashMap和HashSet都是Java Collection框架最重要的类之一。 以下是HashMap和HashSet之间的重要区别。 序号 键 哈希映射 哈希集 1 实作 Hashmap是Map接口的实现。 另一方面,哈希

  • 问题内容: Java中的a 和a有什么区别? 对于非线程应用程序,哪个更有效? 问题答案: 和在Java中有一些区别: 是同步的,而不是。这对于非线程应用程序更好,因为非同步对象的性能通常优于同步对象。 不允许null键或值。 允许一个键和任意数量的值。 的子类之一是,因此,如果你想要可预测的迭代顺序(默认情况下为插入顺序),则可以轻松地将替换为。如果使用,这将不那么容易。 由于同步对你来说不是问

  • 问题内容: 是什么区别,而在中?我没有看到输出的任何差异,因为这三个都有和。什么是? 问题答案: 这三个类都实现了该接口,并提供了几乎相同的功能。最重要的区别是通过条目进行迭代的顺序: 绝对不保证迭代顺序。添加新元素时,它甚至可以(并将)完全改变。 将根据密钥的“自然顺序”(根据其方法)(或外部提供的)进行迭代。此外,它实现了SortedMap接口,该接口包含依赖于此排序顺序的方法。 将按照条目放

  • 问题内容: 除了不允许重复值的事实之外,和之间有什么区别? 我的意思是实施明智?这有点含糊,因为它们都使用 哈希表 存储值。 问题答案: 它们是完全不同的构造。A 是的实现。一个地图键映射到值。密钥查找使用哈希进行。 另一方面,a 是的实现。一组被设计成一组的数学模型相匹配。一个不使用支持其实现,正如你指出。但是,它实现了完全不同的接口。 当您寻找最适合您的目的时,本教程是一个很好的起点。如果您真

  • 问题内容: 请帮助我了解下面写的两行之间的区别,我知道两者都是有效的,但是我想知道哪一个更好? 和 问题答案: 哪一个更好? 就个人而言,我喜欢使用第一个,因为我认为对我来说更清楚了,但这是您的个人喜好,其他人的确认为这是多余的。 有什么区别? 这两行之间没有什么区别,它们在Java 7中的含义相同(如果您的目标是Java 6,请使用第一个)。 [编辑]: 同样,正如Elliott Frisch指