ToB企服应用市场:ToB评测及商务社交产业平台
标题:
day25--Java集合08
[打印本页]
作者:
反转基因福娃
时间:
2022-9-16 17:21
标题:
day25--Java集合08
Java集合08
15.HashTable
15.1HashTable的基本介绍
存放的元素是键值对:即K-V
HashTable的键和值都不能为null
HashTable的使用方法基本上和HashMap一样
HashTable是线程安全的(synchronized),HashMap是线程不安全的
HashTable是无序的
例子:
Hashtable的底层
底层有数组 HashTable$Entry [ ] 的初始化大小为 11
临界值 threshold 8=11*0.75
扩容:原来容量*2+1
package li.map.hashtable;
import java.util.Hashtable;
@SuppressWarnings("all")
public class HashTableExercise {
public static void main(String[] args) {
Hashtable table = new Hashtable();
table.put("john",100);//ok
//table.put(null,100);//异常
//table.put("john",null);//异常
table.put("likk",100);//ok
table.put("likk",99);//替换
System.out.println(table);//{likk=99, john=100} 无序
}
}
复制代码
如下图:初始容量为11,临界值为8
如下图:当数组容量使用到8时,要添加下一个元素时,数组会先扩容到23,临界值变为17
15.2HashTable扩容
简单说一下HashTable的底层
底层有数组 HashTable$Entry[ ] 初始化大小为 11
临界值 threadhold 8 = 11 * 0.75
扩容:
3.1 执行方法 addEntry(hash, key, value, index) 添加K-V对封装到Entry
3.2 当if (count >= threshold) 满足时 ,就进行扩容
3.3 按照int newCapacity = (oldCapacity jdk7:数组+链表 jdk8:数组+链表+红黑树]
键排序:TreeMap
键插入和取出顺序一致:LinkedHashMap
读取文件:Properties
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4