概述

Hashtable也是基于哈希表实现的, 与map相似, 不过Hashtable是线程安全的, Hashtable不允许 key或value为null.

成员变量

Hashtable的数据结构和HashMap一样, 采用 数组加链表的方式实现.

几个成员变量与HashMap一样:

方法

Hashtable的方法与HashMap基本一样, 只是 Hashtable方法加上了 synchronized 关键字, 保证Hashtable是线程安全的.


主要说说Hashtable与HashMap的不同:

  1. Hashtable不允许 null key和null value, HashMap允许
  2. Hashtable是线程安全的, HashMap线程不安全
  3. Hashtable继承自Dictionary, HashMap继承自AbstractMap

Collections 类中存在一个静态方法:synchronizedMap(),该方法创建了一个线程安全的 Map 对象,并把它作为一个封装的对象来返回。

Java集合之Hashtable源码分析相关推荐

  1. Java集合:Hashtable源码分析

    1. 概述 上次讨论了HashMap的结构,原理和实现,本文来对Map家族的另外一个常用集合HashTable进行介绍.HashTable和HashMap两种集合非常相似,经常被各种面试官问到两者的区 ...

  2. 死磕 java集合之ArrayDeque源码分析

    问题 (1)什么是双端队列? (2)ArrayDeque是怎么实现双端队列的? (3)ArrayDeque是线程安全的吗? (4)ArrayDeque是有界的吗? 简介 双端队列是一种特殊的队列,它的 ...

  3. 【死磕 Java 集合】— LinkedTransferQueue源码分析

    [死磕 Java 集合]- LinkedTransferQueue源码分析 问题 (1)LinkedTransferQueue是什么东东? (2)LinkedTransferQueue是怎么实现阻塞队 ...

  4. 死磕Java集合之BitSet源码分析(JDK18)

    死磕Java集合之BitSet源码分析(JDK18) 文章目录 死磕Java集合之BitSet源码分析(JDK18) 简介 继承体系 存储结构 源码解析 属性 构造方法 set(int bitInde ...

  5. java arraydeque_死磕 java集合之ArrayDeque源码分析

    问题 (1)什么是双端队列? (2)ArrayDeque是怎么实现双端队列的? (3)ArrayDeque是线程安全的吗? (4)ArrayDeque是有界的吗? 简介 双端队列是一种特殊的队列,它的 ...

  6. java ee是什么_死磕 java集合之HashSet源码分析

    问题 (1)集合(Collection)和集合(Set)有什么区别? (2)HashSet怎么保证添加元素不重复? (3)HashSet是否允许null元素? (4)HashSet是有序的吗? (5) ...

  7. 死磕 java集合之ConcurrentSkipListMap源码分析——发现个bug

    前情提要 点击链接查看"跳表"详细介绍. 拜托,面试别再问我跳表了! 简介 跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表. 跳表在原有的有序链表上面增加了多级 ...

  8. Java集合之Vector源码分析

    概述 Vector与ArrayLIst类似, 内部同样维护一个数组, Vector是线程安全的. 方法与ArrayList大体一致, 只是加上 synchronized 关键字, 保证线程安全, 下面 ...

  9. Java集合干货——ArrayList源码分析

    前言 在之前的文章中我们提到过ArrayList,ArrayList可以说是每一个学java的人使用最多最熟练的集合了,但是知其然不知其所以然.关于ArrayList的具体实现,一些基本的都也知道,譬 ...

最新文章

  1. jquery动态添加元素无法触发绑定事件的解决方案。
  2. iOS 访问权限设置
  3. 关于共享单车,说点什么
  4. xml解析案例:一个简单的学生管理系统
  5. [SDOI2011]染色
  6. ant 合并 jar
  7. CodeForces - 1408E Avoid Rainbow Cycles(思维+最大生成树)
  8. 动态规划训练13 [Catch That Cow poj3278]
  9. python中_python中的一些用法总结
  10. zigbee上位机通过vs2019的mfc实现
  11. python 自动补全函数括号_三分钟,让你弄清楚Python中函数的括号使用
  12. ASP.NET Aries JSAPI 文档说明:AR.DataGrid
  13. android 在非UI线程更新UI仍然成功原因深入剖析
  14. 叉积求点到平面距离_求一个点到曲线或折线的最短距离?
  15. Vue3 正式版要来了?
  16. 大年三十问候导师的后果...
  17. android实现延时的方法,Android实现延时总结
  18. python机器学习——决策树(分类)及“泰坦尼克号沉船事故”数据集案例操作
  19. win10pe  win10pe Nvme 启动盘_大白菜 uefi_   什么是UEFI启动
  20. qt emit是什么意思_2020年11月14日 无赞赏QT吗哪 :在历史的掌权者面前作信心的决断...

热门文章

  1. 通讯接口应用笔记2:MAX3160实现多协议通讯
  2. 动手学CV-目标检测入门教程3:锚框(anchor)
  3. ECC椭圆曲线加密算法原理
  4. 计算机模拟量与数字量的转换,在S7-1200 CPU中,如何实现模拟量数值与工程量数值之间的转换?...
  5. .net 启动mysql数据库连接_[ASP.net教程]mysql数据库连接方式(.net)
  6. ajax动态获取url参数值,获取URL参数的方法
  7. datapumpdir oracle_oracle_datapump创建外部表案例
  8. 职业高中计算机网络试讲稿,2021教师资格证考试面试高中信息技术试讲稿——《建立数据库的基本过程》...
  9. python写选择排序_如何快速掌握python选择排序算法?
  10. php 在线人数 mysql_PHP+MYSQL实例:编写网站在线人数的程序代码