黑马程序员技术交流社区

标题: HashMap和Hashtable的区别 [打印本页]

作者: 鸭梨的生活    时间: 2014-5-19 13:12
标题: HashMap和Hashtable的区别
.............................................
作者: 鸭梨的生活    时间: 2014-5-19 13:13
加油加油加油。。。。。。。。。
作者: saheru    时间: 2014-5-19 16:27
有以下三方面:
1.hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
2.hashTable同步的,而HashMap是非同步的,效率上逼hashTable要高。
3.hashMap允许空键值,而hashTable不允许。
作者: 无奈的我+.l    时间: 2014-5-20 13:28
Hashtable被HashMap替代了  Hashtable过时了,因为是其线程是安全的,所以效率很低不如HashMap
作者: 水中月    时间: 2014-5-20 23:38
最大的不同是,Hashtable的方法是Synchronize(同步)的,而HashMap不是
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值,由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。

作者: ID1003    时间: 2014-5-20 23:49
/*
* HashMap和Hashtable的区别?
* A:HashMap是线程不安全的,效率高。允许使用 null 值和 null 键。
* B:Hashtable是线程安全的,效率低。任何非 null 对象都可以用作键或值。
*/
import java.util.Hashtable;
public class HashtableDemo {
        public static void main(String[] args) {
                // HashMap<String, String> hm = new HashMap<String, String>();

                Hashtable<String, String> hm = new Hashtable<String, String>();

                hm.put("hello", "world");
                // hm.put(null, "haha");// NullPointerException
                // hm.put("xixi", null);// NullPointerException

                System.out.println(hm);
        }
}
//楼主可以通过这段代码,来通过实例了解HashMap和Hashtable的区别




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2