首页 理论教育 零基础Java从入门到精通HashMap

零基础Java从入门到精通HashMap

时间:2023-10-19 理论教育 版权反馈
【摘要】:HashMap实现了Map接口,同时继承于AbstractMap类。HashMap因为使用了哈希表,所以对其中的映射关系具有很快的访问速度。HashMap类不保证存入键值对映射关系的顺序,而且它的顺序可能会发生变化。动手写11.5.2上述示例中提供了四种遍历HashMap类的方法。其运行结果为:图11.5.1HashMap使用示例从动手写11.5.2中也可以看到,HashMap可使用get()和put()方法来获取或设定指定键key映射的值。HashMap是非线程同步的,所以在多线程的情况下要谨慎使用。

零基础Java从入门到精通HashMap

HashMap实现了Map接口,同时继承于AbstractMap类。它利用哈希值来存储数据,不允许重复的键出现,但允许有null值和null键,最多只允许一个为null的键(这也是因为HashMap键不能重复)。HashMap因为使用了哈希表,所以对其中的映射关系具有很快的访问速度。HashMap类不保证存入键值对映射关系的顺序,而且它的顺序可能会发生变化。

使用时通常将变量类型声明为Map类型,可以通过具体的实现类来定义不同对象的具体实例化类型。

动手写11.5.1

上述代码中,第一个指定声明了键值都是String类型的Map集合;第二个指定声明了一个Map集合,key为String类型,映射的值也是Map集合;第三个指定声明了一个Map集合,key为一个Map集合对象,值为String类型。

动手写11.5.2

(www.xing528.com)

上述示例中提供了四种遍历HashMap类的方法。这里需要说明的是,当集合内键值对较多时,第三种方法——通过Map.entrySet()遍历的效率最高,一次将所有键值对都获取了。另外,示例中使用了get()方法获取Map集合中指定key映射的值。其运行结果为:

图11.5.1 HashMap使用示例

从动手写11.5.2中也可以看到,HashMap可使用get()和put()方法来获取或设定指定键key映射的值。

HashMap是非线程同步的,所以在多线程的情况下要谨慎使用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈