HashTable基本介绍与使用方法

简介: HashTable基本介绍与使用方法

HashTable

基本介绍

  1. 存放元素是键值对
  2. Hashtable的键和值都不能为null,否则会抛出NullPointerException
  3. Hashtable使用方法基本和HashMap一样
  4. Hashtable是线程安全的,HashMap是线程不安全的

扩容机制

  1. 底层数组HashTable$Entry[]初始化11
  2. 临界值threshould 8 = 11 * 0.75
  3. 扩容
  4. 执行方法sddEntry(hash,key,value,index);添加K-V封装到Entry
  5. 当if(count >= threshold)满足时,进行扩容
  6. 按照 int newCapacity = (oldCapacity << 1) + 1大小扩容
static  Hashtable ht = new Hashtable(); //创建一个Hashtable实例
public void HashTablePra()
        {
            
            ht.add("E", "e");//添加keyvalue键值对
            ht.add("A", "a");
            ht.add("C", "c");
            ht.add("B", "b");

            string s = (string)ht["A"];
            if (ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
                Console.WriteLine("the E key exist");
            ht.remove("C");//移除一个keyvalue键值对
            console.writeLine(ht["A"]);//此处输出a
            
            console.writeLine(ht["A"]); //此处将不会有任何输出
            
            ArrayList akeys = new ArrayList(ht.Keys); //别忘了导入System.Collections
            akeys.sort(); //按字母顺序进行排序
            foreach(string skey in akeys)
            {
                console.write(skey + ":");
                console.writeLine(ht[skey]); //排序后输出
             }
            ht.clear();//移除所有元素
        }
相关文章
|
10月前
|
存储 缓存 安全
ConcurrentHashMap:使用方法和底层原理详解
ConcurrentHashMap:使用方法和底层原理详解
240 1
|
10月前
|
Java
【JDK 源码分析】HashMap 操作方法
【1月更文挑战第27天】【JDK 源码分析】HashMap Put 元素 初始化
源码分析系列教程(12) - 手写Map框架(基于JDK1.7)
源码分析系列教程(12) - 手写Map框架(基于JDK1.7)
47 0
|
缓存 NoSQL Redis
细说一下RedisTemplate的使用方法(七)
上篇文章我们学习了三个方法,分别是getExpire(K key)、getExpire(K key, TimeUnit timeUnit)、move三个方法,今天我们学习了RedisTemplate中的delete、expireAt、expire三个方法。
1109 0
细说一下RedisTemplate的使用方法(七)
|
存储 并行计算 安全
ConcurrentHashMap的使用方法及其内部实现原理
ConcurrentHashMap的使用方法及其内部实现原理
205 0
|
NoSQL Redis
细说一下RedisTemplate的使用方法(八)
上篇文章我们学习了三个方法,分别是delete、expireAt、expire三个方法。今天我们就开始学习RedisTemplate中操作String、Hash、Set等特定数据类型的一些方法了。
303 0
细说一下RedisTemplate的使用方法(八)
|
存储 安全 算法
带你深入浅出的分析 HashTable 源码
Hashtable 一个元老级的集合类,早在 JDK 1.0 就诞生了,今天小编想和大家一起来揭开它的面纱!
带你深入浅出的分析 HashTable 源码
|
存储 安全 Java
JDK集合源码之ArrayList解析(附带面试题举例)
JDK集合源码之ArrayList解析(附带面试题举例)
JDK集合源码之ArrayList解析(附带面试题举例)
|
NoSQL 数据库 Redis
细说一下RedisTemplate的使用方法(六)
今天我们学习RedisTemplate中的getExpire(K key)、getExpire(K key, TimeUnit timeUnit)、move三个方法。
1055 0
细说一下RedisTemplate的使用方法(六)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等