Differences between HashMap and Hashtable
来源:互联网 发布:数据挖掘大牛 国科大 编辑:程序博客网 时间:2024/04/27 23:44
HashMap is used in the new framework instead of HashTable, Hashtable is not part of the Java Collections Framework - it just provides a similar API.
There are several differences between HashMap and Hashtable:
- Hashtable is synchronized, whereas HashMap is not.
- Hashtable does not allow null keys or values. HashMap allows one null key and any number of null values
- Enumeration is used in HashTable, but Iterator used in HashMap.
The upper are differences in appearance, there are also several differences in implement :
- The default size of hash array is 11 in Hashtable , the size to add is old*2+1. And the default size is 16 in HashMap, the size to add is 2^x
- The hashCode is different. HashTable directly uses the hashCOde of the key object:
int hash = key.hashCode();int index = (hash & 0x7FFFFFFF) % tab.length;
And HashMap recomputs the hashCode:
int hash = hash(k);int i = indexFor(hash, table.length);static int hash(Object x) {int h = x.hashCode();h += ~(h << 9);h ^= (h >>> 14);h += (h << 4);h ^= (h >>> 10);return h;}static int indexFor(int h, int length) {return h & (length-1);}
原文:http://gaolei.me/archives/58
- Differences between HashMap and Hashtable
- Differences between hashmap and hashtable
- 004:Differences between HashMap and Hashtable?
- HashMap与HashTable区别(Differences between HashMap and Hashtable)
- Difference between HashMap and Hashtable in Java
- 6 Difference Between HashMap And HashTable
- The 5 main differences betwen HashMap and Hashtable
- Difference between HashMap and HashTable? Can we make hashmap synchronized?
- Differences Between Unix and Windows
- Differences between Hibernate and NHibernate
- Differences between C++ and Java
- Differences Between innodb_data_file_path and innodb_file_per_table
- Differences between WM_NOTIFY and WM_COMMAND
- differences between ATM and Ethernet
- Differences between Datasource and XADatasource
- Differences Between Heuristics and Metaheuristics
- Differences Between PyQt4 and PyQt5
- differences between Proxy and vpn
- 黑马程序员_day19 (IO流中的缓冲区)。
- 黑马程序员_day20 (File,列出目录下所有内容,Properties,PrintWriter)。
- Java简单的客户端与服务器的建立与通信
- 创建博客的初衷
- 黑马程序员_day21 (对象的序列化,管道流,转换流的字符数码,字符数码联通)。
- Differences between HashMap and Hashtable
- 黑马程序员_day22 GUI。
- Android Canvas组件实例
- typedef用法终结板
- bootm 与 go
- Response.Write("JS Code")后页面样式丢失问题
- 中断中处理延时及一些函数的调用规则(中断调i2c驱动有感)
- ubuntu/ linux下源码安装mysql5.5
- 一次完整的Http请求过程