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();//移除所有元素
        }
相关文章
|
存储 Linux 网络安全
如何使用iptables在Linux中进行流量转发?
如何使用iptables在Linux中进行流量转发?
2093 0
如何使用iptables在Linux中进行流量转发?
|
存储 Java
【面试题精讲】为什么重写equals时必须重写hashCode方法?
【面试题精讲】为什么重写equals时必须重写hashCode方法?
|
Windows
关于:未能加载文件或程序集“ICSharpCode.SharpZipLib”或它的某一个依赖项异常的解决方案
关于:未能加载文件或程序集“ICSharpCode.SharpZipLib”或它的某一个依赖项异常的解决方案
1252 0
|
存储 开发者
HashMap和Hashtable的key和value可以为null吗,ConcurrentHashMap呢
HashMap的key可以为null,value也可以为null;Hashtable的key不允许为null,value也不能为null;ConcurrentHashMap的key不允许为null
|
9月前
|
Java
SpringBoot自动装配的原理
在SpringBoot项目的启动引导类上都有一个注解@SpringBootApplication 这个注解是一个复合注解, 其中有三个注解构成 , 分别是 ● @SpringBootConfiguration : 是@Configuration的派生注解 , 标注当前类是一个SpringBoot的配置类 ● @ComponentScan : 开启组件扫描, 默认扫描的是当前启动引导了所在包以及子包 ● @EnableAutoConfiguration : 开启自动配置(自动配置核心注解) 2.在@EnableAutoConfiguration注解的内容使用@Import注解导入了一个AutoC
|
缓存 数据库
缓存穿透和击穿
【8月更文挑战第16天】
524 0
缓存穿透和击穿
|
IDE 开发工具 Python
python3代码编程规范(命名、空格、注释、代码布局、编程建议等)
该文章详细介绍了Python3的编程规范,包括命名、空格使用、注释、代码布局等方面的最佳实践,帮助提升代码的可读性和一致性。
1448 0
|
分布式计算 负载均衡 算法
zookeeper定义及操作
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
zookeeper定义及操作
|
消息中间件 NoSQL Java
springboot - 条件注解@ConditionalOnClass原理
springboot - 条件注解@ConditionalOnClass原理
springboot - 条件注解@ConditionalOnClass原理