首页 > 代码库 > Map,HashMap

Map,HashMap

Map(映射),又称为字典(Dictionary),是由关键字(Key)及其对应的元素值(Value)所组成的元素单元(Element)的表单式集合。 通常,对于Map而言,使用给定的Key,可以迅速地从单元集合中检索到相应的元素。因此,在需要对大量数据进行查找操作而查找的性能又占据重要地位的场合,Map无疑是一种较理想的容器。

 

HashMap:基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,此类不保证映射的顺序,特别是它不保证顺序恒久不变。

(一)

下面有一段代码:

上述代码利用HashMap的put方法往映射中添加对象,第一个添加的对象的key是“a”,其对应元素值为"zhangsan"。

因为HashMap不保证顺序,所以输出来的顺序和添加进去的顺序不一定相等。

 

(二)如果再把一个key值一样的对象插进去会怎么样?

代码:

可见,后插入的键值一样的元素值会把之前的元素值替换掉。

 

(三)既然HashMap的查找性能高,那么如何体现呢?

代码:

上述代码,通过get()方法搜索key值为b和d的元素,以为key值为b对应的元素值为lisi,所以返回元素值

而key值为d的对象并没有在该HashMap中,所以返回null。

 

那么反过来,使元素值一样,key不一样的两个对象插入到HashMap中:

可以看出, value值相等,key不同,同样可以放到HashMap中。

 

(四)

Map里有一个keyset()方法,返回key的集合,Map中的Key是不能够重复的,可以推断出keySet()方法的返回类型是Set;

Map里还有一个values()方法,返回Map中的元素的值,因为元素值可以重复,所以values()方法返回类型是Collection。

 

所以我们可以通过keySet()方法的返回的Set集合,再调用它的一个迭代器来遍历HashMap内的元素。代码:

输出结果:

a=aa

c=dd

e=ee

b=bb

d=dd

不保证输出顺序。

 

(五)遍历HashMap的第二种方式

利用Map的内部类Entry来获得key的集合,然后调用entry的getkey()方法和getValue()方法,分别得到map中的key和value

 

 

Map,HashMap