Java 集合框架
什么是HashMap?
自1.2版以来,HashMap是Java中集合的一部分。它提供了Java的Map接口的基本实现。它将数据存储在(Key,Value)对中。要访问一个值,你必须知道它的密钥,否则,你不能访问它。HashMap被称为HashMap,因为它使用了哈希技术。Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。较短的值有助于索引和更快的搜索。HashSet也在内部使用HashMap。它在内部使用链接列表来存储键值对。我们将在其他文章中详细了解HashSet。
HashMap的定义
public class HashMap extends AbstractMap implements
Map, Cloneable, Serializable
HashMap保存在java.util包中。正如你在上面的HashMap定义中看到的那样,它扩展了一个抽象类AbstractMap,它也提供了一个不完整的Map接口实现。正如你所看到的,它也实现了Cloneable和Serializable接口。 上述定义中的K和V分别代表Key和Value。 HashMap不允许重复的键,但允许重复的值。这意味着单个键不能包含多于1个值,但多于1个键可以包含单个值。HashMap也允许null键,但只有一次和多个空值。这个类不能保证map的顺序。它与HashTable大致相似,但是不同步。
HashMap的内部结构
内部HashMap包含一个Node数组。并且节点被表示为包含4个字段的类:
int hash
K键
V值
下一