HashMap和HashTable的异同点

离线安装 nvidia-docker2(nvidia-container-toolkit) 很多时候大家都有用docker使用gpu的需求,但是因为网络等原因不是那么好用,这里留了一个给ubuntu的安装包,网络好的话也提供了在线安装方式。 阅读详情

HashMap和HashTable异同点

底层数据

HashMap(1.7)和HashTable底层数据结构相同,都是以数组加链表形式存储数据。 (注:1.8是链表长度到达8,链表会转换成红黑树)

继承关系

HashMap和HashTable都实现了Clonable ,Map,Serializable接口。 但不同的是HashTable继承了Dictionary接口。

public class HashMap<K,V>
         extends AbstractMap<K,V> 
         implements Map<K,V>, Cloneable, Serializable
         
         
public class Hashtable<K,V>  
    extends Dictionary<K,V>  
    implements Map<K,V>, Cloneable, java.io.Serializable{}

增长方式

扩容时机相同,都是在size大于扩容阈值(数组容量×加载因子)的时候进行扩容。 但HashMap扩容方式是2table.length ,而HashTable是2table.length + 1。

内部方法

HashTable的put方法,remove方法都有关键字sychronized修饰(确保安全性,但效率低)。

Key-Value键值对

HashMap中的key不能重复,key和value都可以为null。 而HashTable的key和value都不能为null。

遍历方式

HashMap可以通过迭代器进行遍历。 而HashTable有特有的枚举方法进行遍历。

Key—Value为null情况的put方法

HashMap的put方法: HashMap遇到key为null的时候,调用putForNullKey方法进行处理,而对value没有处理;Hashtable遇到null,直接返回NullPointerException。

安全性

HasMap线程不安全,Hashtable线程安全(因为有关键字Sychronized修饰)

其他

HashMap 和 hashtable= (同时处理(put)10W,100W,40000W数据) ,比较快慢?

HashMap<Integer,Integer> hashMap = new HashMap<>();
  long b = System.currentTimeMillis();
  for(int i=0; i<NUM; i++) {
        hashMap.put((int) (Math.random()*10),(int) (Math.random()*10));
  }
  long e = System.currentTimeMillis();
  System.out.println("hashmap time : " + (e-b));
    
  Hashtable<Integer,Integer> hashtable = new Hashtable<>();
  long b1 = System.currentTimeMillis();
  for(int i=0; i<NUM; i++) {
        hashtable.put((int) (Math.random()*10),(int) (Math.random()*10));
  }
  long e1 = System.currentTimeMillis();
  System.out.println("hashtable time : " + (e1-b1));

结果::HashMap 比 hashtable 快。

原因(hashtable:sychronized修饰,java程序和操作系统相互切换 (用户端和内核相互切换)) 而HashMap只在用户端操作,不用切换。 (在单线程下 数据不多的情况用HashMap。)
sychronized关键字是一个重量级锁(只能有一个线程对其进行操作),涉及用户空间和内核空间的切换 ;

079、镜头阴影校正(LSC)精讲:径向衰减模型、增益矩阵生成与产线标定技巧 《镜头阴影校正(LSC)实战精要》 本文从实际案例出发,深入解析镜头阴影校正的核心技术与产线应用。作者通过一个典型故障案例(0.05mm镜片偏移导致LSC失效)揭示了LSC不仅是数学问题,更是光学-机械-工艺耦合系统。 【关键技术点】 模型优化:提出"径向+切向"双分量模型替代传统cos⁴θ模型,采用5阶多项式拟合径向衰减,1阶线性补偿切向误差 增益矩阵生成:采用自适应网格技术,在边缘区域加密网格,结合中值滤波与高斯平滑消除噪声干扰 产线标定:强调光源均匀性校准(积分球vs平板光源)、坏点预处理、温度补偿等 阅读详情

相关推荐

东方财富 vs 新浪 vs AKShare:3 种股票实时数据接口性能与稳定性实测对比

本文深度评测了东方财富、新浪和AKShare三种股票实时数据接口的性能与稳定性。通过实际测试数据,从延迟、成功率和数据完整性三个维度进行全面对比,为量化交易和数据分析开发者提供选型参考。结果显示,东方财富接口在实时性和稳定性方面表现最优,适合高频交易场景。

weixin_30800807的博客 395

Hashtable和HashMap的异同

Hashtable和HashMap两者的原理相同,功能相同,很多情况下可以互用。 Hashtable和HashMap的主要区别如下: 1、Hashtable继承自Dictionary类,而HashMap实现了Map接口 2、Hashtable线程安全,HashMap重速度、轻安全,是线程非安全的,所以当运行到线程环境中时,需要程序员自己管理线程的同步问题。 3、Hashtable不允许null值(key和value都不允许),HashMap允许null值(key和value都允许) 其他异同点可参照博客:

Khan的博客 2014

2025.1.16——五、LoveSQL1 sqlmap文件类|万能密码

题目来源:BUUCTF[极客大挑战2019]LoveSQL1。

2402_87387800的博客 1067

Hashtable是什么?它和Hashmap有什么区别?

2.3Hashtable为什么安全?三、Hashtable的缺点

xyk:的博客 1307

别再被SpringerLink虐了!手把手教你搞定LaTeX源文件提交(附正确文件顺序和类型选择)

本文详细解析了SpringerLink投稿系统中LaTeX源文件提交的常见问题与解决方案,包括文件打包、类型选择和顺序排列等关键步骤。通过实战经验,帮助科研人员避开隐形陷阱,一次性完成LaTeX提交,提升投稿效率。特别针对`.bst`和`.cls`文件的正确处理提供了专业指导。

weixin_42522964的博客 445

别再纠结VS还是VSCode了!新手C#环境搭建保姆级指南(含.NET Core安装验证)

本文为C#新手提供Visual Studio与VS Code的深度对比及环境搭建指南,涵盖.NET Core安装验证、工具选择决策框架及实战配置技巧。帮助开发者根据项目需求选择合适工具,快速搭建高效开发环境,提升编码效率。

weixin_30455023的博客 561

简单hash table的实现和讲解

hash table入门 数据结构讲解

haoyuxuanyuan的博客 538

(蓝桥杯)STM32G431RBT6(SysTick timer)

选用最基础的定时器。

2301_81764359的博客 1903

常用数据结构-哈希表 (Hash Table)

⚠️ 注意: 在使用哈希表时,应考虑哈希函数的选择、装载因子和扩容策略,以确保性能。哈希表是一种使用哈希函数将键映射到存储位置的数据结构,以实现快速数据查找。

yueerba126的博客 708

新手必看:LiteRadio 2c SE遥控器从开箱到飞行的完整指南(附常见问题解答)

本文为新手提供LiteRadio 2c SE遥控器的完整使用指南,涵盖从开箱到首飞的20个关键步骤。详细介绍了遥控器的功能设置、与无人机的对频技巧以及首飞注意事项,帮助用户快速掌握飞行控制,避免常见错误。特别适合无人机初学者阅读。

weixin_29209801的博客 381

【推荐100个unity插件】基于节点的程序化无限地图生成器 —— MapMagic 2

MapMagic 2是一款基于节点的程序化地形生成工具,可快速创建无限地图。主要功能包括:通过图形化节点编辑器构建地形逻辑;支持四个核心模块(对象、样条线、生物群落和笔刷);提供完整的操作指南,包括创建资产、使用编辑器窗口、节点操作等。工具具有直观的UI界面,支持节点连接、参数调整、图层管理等功能,并能实时生成地形。适合游戏开发者快速构建高质量的可玩地形环境。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3125

HashMap 和 HashTable 的异同点

HashMap 和 Hashtable 都是 Map 接口的实现类,存储的是 key - value 对。 相同点 1. 它们都是存储键值对(key - value)的散列表,而且都是采用链地址法 实现的。 存储思想:通过 table 数组存储,table 数组是 Entry 类型的,每个table 数组最终都存储的是一个单向链表,链表中的每个节点都存储的键值对(key - value)。 ...

xiaobao5214的博客 597

12、无人机系统的建模与仿真

本文深入探讨了无人机系统的建模与仿真技术,涵盖其发展需求、历史演变、动力学建模方法、常用参考框架与状态变量表示,并分析了在控制系统设计、操作员培训和子系统测试中的关键应用。文章还介绍了不同类型无人机(固定翼、旋翼、混合翼)在建模与仿真中的差异,提出了多学科融合、高精度实时仿真及VR/AR技术等未来发展趋势,并给出了实际建模与仿真的标准操作流程,为无人机系统的设计与优化提供了全面的技术支持与展望。

websocket5live的博客 197

HashTable和HashMap的异同点

HashTable和HashMap的异同点 不同点: 实现的接口继承的类不同: hashmap:AbstractMap hashtable:Dictionary(Enumerator 提供了特有的key和value的遍 历方式) 初始数组大小: hashmap:16 hashtable:11 线程安全性 hashmap:非线程安...

weixin_43588067的博客 422

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

HashMap和Hashtable的异同点

HashMap和Hashtable的异同点 不同点: 1、HashMap的父类是AbstractMap,而Hashtable的父类是Dictiionary; 2、HashMap的key和value可以为空,而Hashtable不允许为空; 3、HashMap的方法不是同步的,而Hashtable的方法是同步的; 4、HashMap是非线程安全的,而Hash

游海东的技术专栏 1684

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HashMap和HashTable异同点及使用场景

HashMap和HashTable异同点及使用场景HashMap和HashTable异同点及使用场景 线程安全不同 是否允许null值不同 继承实现方式不同 初始容量和扩容策略不同 计算hash的方法不同 使用场景线程安全不同Hashtable是线程安全,HashMap非线程安全。是否允许null值不同HashMap可以使用null作为key、value,并且null元素会计入size。Hashta

aurora的记忆长廊 3236

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HashMap和Hashtable异同点

通过阅读java源代码发现HashMap和Hashtable的异同点:    相同点:          1.都是由数组实现           2.key都是通过hash算法           3.put方法,当key存在是返回的是原来的value,不存在时返回的是null    不同点:          1.代码风格不一样,设计不一样(估计不是同一个人写的,个人猜测)  

chabale的专栏 2292

4.Hashtable:Hashtable和HashMap的异同点???

跟汤老师学Java笔记:Hashtable 完成:第一遍 1.Hashtable和HashMap的异同点? 相同点: Hashtable和HashMap非常类似,用法基本相同 不同点: Hashtable: 区别一:同步的,线程安全,Hashtable方法很多都被synchronized修饰 区别二:key和value都不允许为null值 区别三:可以使用iterator或Enumeration遍历 HashMap 区别一:异步的,线程不安全的 k区别二:ey和value都可以为null值 区别三:可以使用

ADbyCool的博客 386

Java集合6——HashMap和HashTable的异同点

不同点 1.实现的接口继承的类不同 hashmap:AbstractMap hashtable:Dictionary(Enumerator 提供特有的key和value的遍历方式) 2.初始数组大小 hashmap:16 hashtable:11 3.线程安全性 hashmap:非线程安全(不安全在哪?) hashtable:线程安全(Synchronize) 4.扩容方式: hashmap:re...

weixin_42293337的博客 288

java集合———HashMap 和 HashTable 的异同点

HashMap 和 Hashtable 都是 Map 接口的实现类,存储的是 Key - value 对。 相同点 1. 它们都是存储键值对(key - value)的散列表,而且都是采用链地址法 实现的。 存储思想:通过 table 数组存储,table 数组是 Entry 类型的,每个table 数组最终都存储的是一个单向链表,链表中的每个节点都存储的键值对(key - value)。 ...

Alyson_jm的博客 1509

java烧脑总结:HashMap和HashTable的异同点、HashMap详解底层原理(一)

一、HashMap和HashTable异同点 (1)继承实现异同 (2)线程安全性、效率不同 (3)是否提供contains方法 (4)key和value是否允许null值 (5)数组初始化和扩容机制 二、底层实现

鲁迷那的专栏—坚持实践后再写出来! 367

java烧脑总结:HashMap和HashTable的异同点、HashMap详解底层原理(二)

上篇文章我们讲到HashMap和HashTable的异同点,以及它们的底层原理实现,它们都是 数组+链表 实现的, 在jdk1.7中由数组+链表实现,在jdk1.8中由数组+链表+红黑树实现,这篇文章咱们将继续来详细分析, 既然是数组+链表+红黑树实现的,来我们首先需要知道什么是数组、链表、红黑树?go,卷起来。。。............

鲁迷那的专栏—坚持实践后再写出来! 194

HashTable

一、HashTable 1. 继承关系 public class Hashtable&lt;K,V&gt;extends Dictionary&lt;K,V&gt;implements Map&lt;K,V&gt;, Cloneable, java.io.Serializable 继承Dictionary类(JDK较早提供的一个实现类),实现Map、Cloneable、 java.io...

Daria_的博客 602
上一篇: 集合框架图简介
下一篇: HashMap介绍
Java-fly
博客等级 码龄9年 13粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值