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();//移除所有元素
        }
相关文章
|
7月前
|
存储 缓存 安全
ConcurrentHashMap:使用方法和底层原理详解
ConcurrentHashMap:使用方法和底层原理详解
203 1
|
7月前
|
存储 安全 Java
|
7月前
|
Java
【JDK 源码分析】HashMap 操作方法
【1月更文挑战第27天】【JDK 源码分析】HashMap Put 元素 初始化
HashMap深入底层原理解析
这次主要是分析下HashMap的工作原理,为什么我会拿这个东西出来分析,原因很简单,以前我面试的时候,偶尔问起HashMap,99%的程序员都知道HashMap,基本都会用Hashmap,这其中不仅仅包括刚毕业的大学生,也包括已经工作5年,甚至是10年的程序员。HashMap涉及的知识远远不止put和get那么简单。本次的分析希望对于面试的人起码对于面试官的问题有所应付
|
存储 并行计算 安全
ConcurrentHashMap的使用方法及其内部实现原理
ConcurrentHashMap的使用方法及其内部实现原理
190 0
|
JavaScript 前端开发 Unix
dayjs-入门及常用方法
dayjs好处 • 🕒 和Moment.js有着相同的API和模式 • 💪 不可变、持久性 • 🔥 提供链式调用 • 🌐 国际化标准 • 📦 超小的压缩体积,仅仅有2kb左右 • 👫 极大多数的浏览器兼容
421 0
dayjs-入门及常用方法
|
存储 算法 Java
HashMap的底层实现原理及其一些常用方法的总结
首先,HashSet的底层实现就是map,接下来介绍一下HashMap的底层实现原理(以jdk7和jdk8为例),HashMap的一些常用方法我整理了一下,放到了文章结束的代码块里。 先介绍jdk7的: 当 HashMap map = new HashMap(); 实例化一个对象时,其底层实际上创建了一个Entry[ ] 类型的长度为16的数组。 然后,当你map.put(key,value);往map容器中添加对象时,底层会进行以下过程: ...
110 0
HashMap的底层实现原理及其一些常用方法的总结
|
存储 Java Scala
Map 的基本介绍和创建 | 学习笔记
快速学习 Map 的基本介绍和创建
|
算法 C++
STL源码分析--hashtable
STL源码分析--hashtable
204 0
STL源码分析--hashtable