HashTable源码分析
2019-09-03 17:29
676 查看
/**
[ul]The hash table data.
*/
//存放键值对的数组
private transient Entry<?,?>[] table;
/**
The total number of entries in the hash table.
*/
//大小
private transient int count;
/**
@serial
*/
//阀值
private int threshold;
/**
@serial
*/
//负载因子
private float loadFactor;
//默认初始容量为11,负载因子0.75
public Hashtable() {
this(11, 0.75f);
}
//1.8版本没有修改,没有维护红黑树结构
public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) {
throw new NullPointerException();
}
// Makes sure the key is not already in the hashtable. Entry<?,?> tab[] = table; int hash = key.hashCode(); //求余获得索引 int index = (hash & 0x7FFFFFFF) % tab.length; @SuppressWarnings("unchecked") Entry<K,V> entry = (Entry<K,V>)tab[index]; for(; entry != null ; entry = entry.next) { if ((entry.hash == hash) && entry.key.equals(key)) { V old = entry.value; entry.value = value; return old; } } addEntry(hash, key, value, index); return null;
}
/**
*/
public synchronized V remove(Object key) {
Entry<?,?> tab[] = table;
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;[url=https://blog.51cto.com/mufeng219/mailto:br/>@SuppressWarnings(]br/>@SuppressWarnings("unchecked")
相关文章推荐
- java1.7集合源码赏析系列:HashTable、ConcurrentHashMap、HashMap差异分析
- 史上最详细的Hashtable详解--源码分析
- java的HashTable的部分源码分析
- java集合框架09——HashTable和源码分析
- Hashtable源码分析(基于JDK1.8)
- JDK 源码分析(4)—— HashMap/LinkedHashMap/Hashtable
- [源码解析]HashMap和HashTable的区别(源码分析解读)
- [Java] Hashtable 源码简要分析
- PHP源码分析之HashTable(2)
- HashTable源码分析
- Java集合:Hashtable使用详解及源码分析
- HashTable源码分析
- Java数据结构源码分析-HashTable
- Java-Hashtable源码分析及示例
- Java 集合框架源码分析(六)——HashTable
- HashMap HashTable ConcurrentHashMap key和value是否可以null的问题 源码分析
- Hashtable HashMap ConcurrentHashMap 源码分析
- HashMap、HashTable源码分析
- HashTable源码分析
- [Java] Hashtable 源码简要分析