哈希映射和映射有啥区别[重复]
Posted
技术标签:
【中文标题】哈希映射和映射有啥区别[重复]【英文标题】:What's the difference between hash-map and map [duplicate]哈希映射和映射有什么区别[重复] 【发布时间】:2011-06-02 09:28:34 【问题描述】:可能重复:Java - HashMap vs Map objects
hash-map 是否有多个值?
【问题讨论】:
什么语言?如果是 Java,则为 Java - HashMap vs Map objects 的副本 【参考方案1】:哈希映射是映射的特定实现,使用hash function。映射总是(最多)每个键有一个值。
【讨论】:
投反对票的人能否解释一下答案的哪一部分是错误的?【参考方案2】:在 Java 中,Map 是一个接口,而 HashMap 实现了 Map 接口。也就是说,一个HashMap可以被实例化并赋值给一个Map变量
Map myMap = new HashMap();
一个 HashMap 和一个 Map 可以包含多个键/值对,但它们不能包含重复的键。
【讨论】:
只是为了澄清——一个实例化的 Map 类在它自己的每对中不能有多个键。 “一个映射不能包含重复的键;每个键最多可以映射到一个值。” docs.oracle.com/javase/6/docs/api/java/util/Map.html【参考方案3】:参考 Java 语言,Map 是 java.util 包中的一个接口,用于将键映射到值。地图不能包含重复的键;每个键最多可以映射到一个值。 HashMap 是 Map 接口的基于哈希表的实现。 HashMap 提供所有可选的映射操作,并允许空值和空键。如果您想为单个键使用多个值,则只需使用 Map
地图:
不能包含重复值。 每个键最多可以映射到一个值。哈希映射:
哈希创建(可能是字符串大小的线性复杂度,具体取决于创建哈希的算法)。 使用哈希进行持续查找。 如果考虑到冲突,则将线性复杂度与相同哈希的冲突次数相加。【讨论】:
这个问题没有提到 Java。映射是一种抽象数据类型,可以在任何语言中使用。事实上,他澄清说他实际上是在谈论 C。你的回答也自相矛盾。 Map 是 Java中的一个接口,它没有指定任何实现。因此,说它具有日志复杂性显然是错误的。在 Java 或其他语言中,有多种方法可以实现映射。哈希映射和树映射(确实具有日志复杂性)是其中两种方式。键也不需要是字符串。 当然!在澄清他指的是C语言之前,我碰巧假设了一些事情。此外,您说得对,密钥不一定总是 String,但这只是一个示例,可能措辞不正确。 地图下的要点仍然不正确。地图可以通过多种方式实现,哈希地图就是地图。这些要点可能对TreeMap<String>
有意义。
好的,感谢您提请注意。以上是关于哈希映射和映射有啥区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章