Java中HashTable、HashMap、WeakHashMap的区别及用法小结

来源:互联网 发布:九章算法 视频 编辑:程序博客网 时间:2024/05/21 05:23

Java中哈希表有HashTable、HashMap、WeakHashMap三类,他们的区别如下:

1.HashTable的键和值都不允许是null,而HashMap、WeakHashMap可以;

2.HashTable支持同步机制,多个线程对同一个HashTable实例操作时,HashTable可以保证操作的正确性,而HashMap、WeakHashMap没有同步机制;

3.WeakHashMap会检查各元素是否“常用”,如果“不常用”会自动从WeakHashMap对象中删除,而HashTable、HashMap没有这种自动检查、删除机制;


除上述3点HashTable、HashMap、WeakHashMap的用法完全相同,以HashTable为例记述哈希表使用小结:

1.哈希表声明方法如下:
HashTable<String, int> ht = new HashTable<String, int> ();

也可以用如下声明方式:

HashTable ht = new HashTable ();

这时编译器会出现“使用了未经检查或不安全的操作”警告;

2.通过哈希表成员方法public V get(Object key)可以进行双向映射,当传入参数为键时返回对应值,当传值时返回对应键;

注意