Java集合框架_HashMap和Hashtable的区别 1、线程是否安全:Hash Map是非线程安全的,Hash Table是线程安全的,Hash Table的内部方法基本上都经过了synchronized修饰,如果你要保证线程安全的话就使用ConcurrentHashMap吧。 2、效率:因为线程安全问题,HashMap要比HashTable效率高一点,另外,Hash Table基本上被淘汰,不要在代码...
HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。 另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而H...
HashMap可以存放 null Hashtable不能存放null 区别2: HashMap不是线程安全的类 Hashtable是线程安全的类 package collection;importjava.util.HashMap;importjava.util.Hashtable;publicclassTestCollection{publicstaticvoidmain(String[] args) {//HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式HashMap<...
正因为如此,Hashtable是一个线程安全的Map实现,但是HashMap是线程不安全的Map实现,所以HashMap比Hashtable的性能高一点。但是如果是多个线程访问同一个Map对象的时候,使用Hashtable实现类会更好。 (3)HashMap允许空键值(key 和 value都可以为null),而Hashtable不允许(key 和 value都不可以为null)。 (4)Hashtable...
ConcurrentHashMap和Hashtable的区别主要体现在实现线程安全的方式上的不同。 1、底层数据结构:jdk1.7的ConcurrentHashMap底层采用分段的数组+链表实现,jdk1.8采用的数据结构是跟HashMap1.8的结构一样,数组+链表/红黑二叉树。Hashtable和jdk1.8之前的HashMap的底层数据结构都是采用数组+链表的形式,数组是Hash Map的主体,...
区别1: HashMap可以存放 null Hashtable不能存放null 区别2: HashMap不是线程安全的类 Hashtable是线程安全的类 package collection; import java.util.HashMap; import java.util.Hashtable;publicclassTestCollection {publicstaticvoidmain(String[] args) {//HashMap和Hashtable都实现了Map接口,都是键值对保存数...
区别1: HashMap可以存放 null Hashtable不能存放null 区别2: HashMap不是线程安全的类 Hashtable是线程安全的类 package collection; import java.util.HashMap; import java.util.Hashtable;publicclassTestCollection {publicstaticvoidmain(String[] args) {//HashMap和Hashtable都实现了Map接口,都是键值对保存数...