关于“php_hashtable的使用”的问题,小编就整理了【4】个相关介绍“php_hashtable的使用”的解答:
hashtable为什么不能允许有null键和值而hashmap为什么又允许有?hashmap,基于哈希表的map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了非同步和允许使用null之外,hashmap类与hashtable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get和put)提供稳定的性能。迭代collection视图所需的时间与hashmap实例的"容量"(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。
hashtable,类实现一个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashcode方法和equals方法。
hashmap和hashtable的区别是什么?HashMap和Hashtable都是基于哈希表实现的Map接口的类,它们都存储键值对,但有些区别:
1. 线程安全性不同: Hashtable是线程安全的,对其所有操作都是同步的,而HashMap不是线程安全的,因此在多线程中使用HashMap时需要注意线程同步问题。
2. null值的处理方式不同:HashMap允许使用null作为键和值,而Hashtable则不允许,如果使用null会抛出NullPointerException。
3. 初始容量和增量的默认值不同: HashMap默认初始容量为16,而Hashtable为11,HashMap的默认增量为当前容量的2倍,Hashtable的默认增量为容量的一半加1。
4. 用于迭代的Enumeration和Iterator的不同:Hashtable没有引进Iterator,只能使用Enumeration来遍历其中的元素,而HashMap支持Iterator遍历。
5. 在遍历上,HashMap是快速失败的,而HashTable是安全失败的,所以说,如果在多个线程同时进行对Hashtable进行迭代,可能会导致程序不稳定。
综上所述,虽然Hashtable比HashMap更安全,但如果不需要线程安全这个特性,建议使用HashMap,可以获得更快的性能。
php网页中怎么弹出新的php页面?php实现弹出新页面的方法:
1、使用“header("Location:".PSYS_BASE_URL."user/index");”方法实现弹出跳转;
2、通过“header("refresh:3;url='createTag' ");”。
HashMap和Hashtable有什么区别?线程安全性不同。HashMap线程不安全;Hashtable 中的方法是Synchronize的。
key、value是否允许null。HashMap的key和value都是可以是null,key只允许一个null;Hashtable的key和value都不可为null。
迭代器不同。HashMap的Iterator是fail-fast迭代器;Hashtable还使用了enumerator迭代器。
hash的计算方式不同。HashMap计算了hash值;Hashtable使用了key的hashCode方法。
默认初始大小和扩容方式不同。HashMap默认初始大小16,容量必须是2的整数次幂,扩容时将容量变为原来的2倍;Hashtable默认初始大小11,扩容时将容量变为原来的2倍加1。
是否有contains方法。HashMap没有contains方法;Hashtable包含contains方法,类似于containsValue。
父类不同。HashMap继承自AbstractMap;Hashtable继承自Dictionary。
到此,以上就是小编对于“php_hashtable的使用”的问题就介绍到这了,希望介绍关于“php_hashtable的使用”的【4】点解答对大家有用。