2016 - 2024

感恩一路有你

hashmap为什么用红黑树 hashtable实现了哪个接口?

浏览量:2138 时间:2021-03-14 09:01:00 作者:admin

hashtable实现了哪个接口?

哈希表和哈希映射之间的区别:

1。Hashtable是dictionary的子类,HashMap是map接口的实现类;

2。hashtable中的方法是同步的,而HashMap中的方法默认是异步的。也就是说,在多线程应用程序中,hashtable可以安全地使用,不需要特殊的操作;对于HashMap,需要额外的操作,但是HashMap的同步问题可以通过一个静态的集合方法来解决:map集合.synchronizedMap(Map m)此方法返回一个同步映射,它封装了底层HashMap的所有方法,使得底层HashMap即使在多线程环境中也是安全的。在HashMap中,null可以用作键,并且只有一个这样的键;一个或多个键可以具有对应的null值。当get()方法返回一个null值时,表示HashMap中没有键。这个键还可以指示对应于这个键的值为null。因此,在HashMap中,我们不能使用get()方法来确定HashMap中是否有键,而应该使用containskey()方法来确定

1。键和值都不能为null,这是线程安全的。实现线程安全的方法是在修改数据时锁定整个哈希表,效率很低

2。初始大小为11,展开:newsize=oldsize*21

1。可以存储空键和空值,但线程不安全

2。初始大小是16,扩展:newsize=oldsize*2,大小必须是2的n次方

哈希表是线程安全的,HashMap是非线程安全的。Hashtable是基于旧的dictionary类,HashMap是在引入map接口后对java1.2的重新实现。哈希表方法,锁同步,可用于多线程环境。HashMap需要程序员提供同步,以便它在多线程中运行。常用的方法是使用collections类的static synchronizedmap()方法来创建线程安全映射对象或使用并发HashMap。

hashmap为什么用红黑树 treemap和hashmap区别 hashmap和hashtable的区别

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。