hash-map和map之间有什么区别

时间:2011-01-02 03:22:42

标签: data-structures

  

可能重复:
  Java - HashMap vs Map objects

哈希映射有多个值吗?

3 个答案:

答案 0 :(得分:1)

在Java中,Map是一个接口,而HashMap实现了Map接口。换句话说,可以实例化HashMap并将其分配给Map变量

Map myMap = new HashMap();

HashMap和Map可以包含多个键/值对,但它们不能包含重复键。

答案 1 :(得分:1)

哈希映射是使用hash function的地图的特定实现。地图始终具有(最多)每个键一个值。

答案 2 :(得分:1)

参考Java语言,Map是java.util包中的一个接口,它将键映射到值。地图不能包含重复的键;每个键最多可以映射一个值。 HashMap是一个基于Hash表的Map接口实现。 HashMap提供所有可选的映射操作,并允许空值和空键。如果要为单个键使用多个值,则只需使用Map< K,Collection>或Google Collections MultiMap< K,V>。 如果键是String,则哈希映射将创建字符串的哈希并使用该哈希索引数组,从而提供常量查找。但是,由于字符串的散列可以生成与另一个字符串的散列相同的索引,因此需要进行一些冲突检测。因此,增加了复杂性来管理冲突。

地图:

  • 不能包含重复值。
  • 每个键可以映射到最多一个值。

HashMap中:

  • 哈希创建(可能是字符串大小的线性复杂性,具体取决于创建哈希的算法)。
  • 使用哈希进行常量查找。
  • 如果考虑到碰撞,则会增加相同散列的碰撞数量的线性复杂度。
相关问题