区别 | hashtable | hashmap |
---|---|---|
时间 | JDK1.1 | JDK1.2 |
数据结构 | 数组+链表 | 数组+链表+红黑树(单链表节点>8时) |
父类 | 抽象类Dictionary | 抽象类AbstractMap |
initialCapacity | 11 | 16 |
扩容方式 | 2n+1 | 2n |
确认key在数组中的索引的方法 | (hash & 0x7FFFFFFF) % tab.length | i =(n-1)%hash |
遍历方式 | Iterator和Enumeration | Iterator |
Iterator遍历数组顺序 | 索引从大到小 | 索引从小到大 |
Null Key & Null Value | 不支持,抛出NullPointerException | 支持 |
线程是否安全 | 安全 | 不安全 |
性能高低 | 低 | 高 |
☆int hash = key.hashCode();
☆Entry<?,?> tab[] = table; tab.length是数组的长度