java中的HashMap和Hashtable示例
下面我们先经由过程示例来看看HashMap和Hashtable的区分。
HashMap和Hashtable将键/值对存储在哈希表中。当运用Hashtable或HashMap时,我们指定一个用作键的对象,以及要链接到该键的值。然后对该键举行哈希处置惩罚,获得的哈希(散列)代码将用作表中存储值的索引。
java代码:
import java.util.*; import java.lang.*; import java.io.*; /* 只有当类是大众的时,类的称号才必需是“main” */ class Ideone { public static void main(String args[]) { //----------hashtable ------------------------- Hashtable<Integer,String> ht=new Hashtable<Integer,String>(); ht.put(100,"Amit"); ht.put(104,"Amit"); ht.put(101,"Vijay"); ht.put(102,"Rahul"); System.out.println("-------------Hash table--------------"); for (Map.Entry m:ht.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } //----------------hashmap-------------------------------- HashMap<Integer,String> hm=new HashMap<Integer,String>(); hm.put(100,"Amit"); hm.put(104,"Amit"); // hashmap 许可反复值 hm.put(101,"Vijay"); hm.put(102,"Rahul"); System.out.println("-----------Hash map-----------"); for (Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+" "+m.getValue()); } } }
输出:
HashMap和Hashtable之间的区分
1、HashMap黑白同步的,不是线程平安的,假如没有准确的同步代码,则没法在多个线程之间同享;而Hashtable是同步的,是线程平安的,能够与很多线程同享。
注:假如不需要线程同步,HashMap一般优于Hashtable。
2、HashMap许可一个null键和多个null值,而Hashtable不许可任何null键或值。
3、hashmap完成linkedhashmap保护插进去递次,treemap依据键的升序对映照举行排序。而hashtable不能保证任何范例的递次;它不会以任何特定的递次保护映照。
4、HashMap是继续自AbstractMap类,而HashTable是继续自Dictionary类。
5、Hashtable默许的初始容量为11,以后每次扩大,容量就变成本来的2n+1;而,HashMap默许的初始容量大小为16,以后每次扩大,容量就变成本来的2倍。
6、盘算hash值的要领差别
7、HashMap的迭代器是fail-fast机制的,而Hashtable的迭代器不是fail-fast机制的。
相干视频教程引荐:《Java教程》
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是java中HashMap和Hashtable之间的区分是什么的细致内容,更多请关注ki4网别的相干文章!