HashTable

// Hashtable保存key-value的数组。
// Hashtable是采用拉链法实现的,每一个Entry本质上是一个单向链表
private transient Entry<?,?>[] table;

// Hashtable中元素的实际数量
private transient int count;

// 阈值,用于判断是否需要调整Hashtable的容量(threshold = 容量*加载因子)
private int threshold;

// 加载因子
private float loadFactor;
// Hashtable被改变的次数
private transient int modCount = 0;
最大值减去8
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
// Hashtable的“key的集合”。它是一个Set,意味着没有重复元素 Set;
private transient volatile Set<K> key
// Hashtable的“key-value的集合”。它是一个Set,意味着没有重复元素
private transient volatile Set<Map.Entry<K,V>> entrySet;
// Hashtable的“key-value的集合”。它是一个Collection,意味着可以有重复元素
private transient volatile Collection<V> values;

构造函数:
构造函数1:

 


构造函数2:

 

构造函数3:

 


构造函数4:

 



获取大小和是否为空

 


// 返回“所有key”的枚举对象
// 返回“所有value”的枚举对象

 



// 判断Hashtable是否包含“值(value)”


 

// 判断Hashtable是否包含key

 



// 返回key对应的value,没有的话返回null

 

 

 // 调整Hashtable的长度,将长度变成原来的(2倍+1) 133 // (01) 将“旧的Entry数组”赋值给一个临时变量。 134 // (02) 创建一个“新的Entry数组”,并赋值给“旧的Entry数组” 135 // (03) 将“Hashtable”中的全部元素依次添加到“新的Entry数组”中

 

 

 

  // 将“key-value”添加到Hashtable中

 

 

 

 

// 删除Hashtable中键为key的元素

 


// 将“Map(t)”的中全部元素逐一添加到Hashtable中

 





// 将Hashtable的table数组的值全部设为null

 





// 克隆一个Hashtable,并以Object的形式返回。

 



// 获取Hashtable的枚举类对象
// 若Hashtable的实际大小为0,则返回“空枚举类”对象;
// 否则,返回正常的Enumerator的对象。(Enumerator实现了迭代器和枚举两个接口)

 


 // 获取Hashtable的迭代器

 

// 返回一个被synchronizedSet封装后的KeySet对象
// synchronizedSet封装的目的是对KeySet的所有方法都添加synchronized,实现多线程同步

 




// 返回一个被synchronizedSet封装后的EntrySet对象
// synchronizedSet封装的目的是对EntrySet的所有方法都添加synchronized,实现多线程同步

 


 // 返回一个被synchronizedCollection封装后的ValueCollection对象

// synchronizedCollection封装的目的是对ValueCollection的所有方法都添加synchronized,实现多线程同步

 


// 重新equals()函数

// 若两个Hashtable的所有key-value键值对都相等,则判断它们两个相等

 


 // 计算Hashtable的哈希值
// 若 Hashtable的实际大小为0 或者 加载因子<0,则返回0。
// 否则,返回“Hashtable中的每个Entry的key和value的异或值 的总和”。

 

遍历:

 替换所有:

 

删除:

 

替换:

 

 

 参考:

https://www.cnblogs.com/wang-meng/p/5720805.html

 

 

 

 

 

 

 







posted @ 2019-06-21 18:35  远方的人111  阅读(353)  评论(0)    收藏  举报