北大青鸟java培训:Map的存储方式解析?

Python015

北大青鸟java培训:Map的存储方式解析?,第1张

HashCode()的作用是为每一个引用类型的元素分配一个唯一的哈希码,福建电脑培训http://www.kmbdqn.cn/发现这个哈希码就像对象的引用地址一样,在内存中不会重复,是一个唯一值。

      在Map元素存储时,将哈希码通过计算,生成一个在数组长度范围内的数,这里我用 index代替解释,然后将index设定为Map元素在数组中的下标,将Map元素存储在所对应的index位置上,这样在进行查找Map元素时就可以通过该Map元素的哈希码对数组长度取余数即可直接在数组中找到对应的Map元素。

      这里我先对获得index的计算方式进行介绍,我们知道,数组有固定的长度,那么只要我们将哈希码对数组长度取余数,那么这个余数一定是在数组长度范围内的,也就是在0-数组长度减一的范围内,这样正好是数组下表的范围。

 即:哈希码%数组长度 =  [0, 数组长度-1]      当然,这里有一点需要注意,不同的哈希码对数组长度取余数之后,可能得到相同的余数,在这里,链表就派上了用场。

采用这样的存储结构,在查找Map元素时,只需要通过分配给每一个元素的哈希码%数组长度,即可得到该Map元素在数组中的索引值,然后通过索引值找到Map元素在数组中的位置,如果改位置链表存在多个元素,只需对该位置的链表进行便利查找即可找到对应的Map元素值,极大地提高了查找效率。

上海尚学堂java培训信恒涛原创,转载请说明出处。

java中使用map存取数据的方法如下:

1、需要指定其中的K,V;k=keyv=value。

2、指定其中K、V的类型。

3、接下来往map中添加数据。

4、需要注意的是,如果map中已经存在的key,后面添加的会覆盖掉当前值。

接下来对map进行遍历输出。可以看到其中a的值已经被覆盖,此时就已经使用map存储好数据了。

java map是以键值对的方式保存数据的,map中的键key和值value可以是各种对象,如String、Double、Integer、或者自己定义的类对象,不能是普通基本类型如int、double等