Java HashMap与Hashtable数据结构和特点+HashSet简述

1.HashMap

  1. HashMap就是基于数组和链表的数据结构:JDK1.7使用 数组+单向链表;JDK1.8使用 数组+单向链表+红黑树

  2. HashMap有两个重要的参数:

    一个是负载因子 0.75:表示数组使用率达到75%,并且数组长度大于64,扩容数组

    一个是初始值大小 16:表示数组的长度

    特点:HashMap线程不安全,允许赋值为null, 初始数组长度16 扩容2倍

面试题:描述HashMap数据结构

  1. 构成:数组+单向链表+红黑树
  2. 数组存放的过程:根据key的hash值经过经过计算(取余)得出当前元素应该存放在数组中的位置,如果当前位置有值,利用单向链表向下延伸
  3. 延伸为单项链表,因为单向链表的查询效率会随着元素的增多而大幅度下降,所以在JDK1.8之后中加入了红黑树
  4. 当单向链表的长度超过8 ,并且集合中的元素个数大于64 ,单向链表转换为红黑树,如果数中的元素在后续减少到了6个,则继续转换为单向链表

2.Hashtable

特点:Hashtable线程安全,不允许赋值为null,数组初始为11 扩容2倍+1 JDK1.0就存在

其余与HashMap相同

3.HashSet

HashSet底层使用的是HashMap :因为HashSet中存储的元素与HashMap中存储的键(key)值 特点一致

特点:无序、无下标、不能重复、线程不安全、允许为null

Java HashMap与Hashtable数据结构和特点+HashSet简述相关推荐

  1. HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类

    HashMap专题:HashMap的实现原理--链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时 ...

  2. java HashMap 与HashTable的区别

    HashMap 与HashTable的区别 HashMap与Hashtable的区别是面试中经常遇到的一个问题.这个问题看似简单,但如果深究进去,也能了解到不少知识.本文对两者从来源,特性,算法等多个 ...

  3. Java HashMap和Hashtable的区别

    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable ...

  4. JAVA - HashMap和HashTable

    1. HashMap 1)  hashmap的数据结构 Hashmap本质就是一个数组,只是当key值重复时,使用链表的方式来存储重复的key值(拉链法),注意:链表中存放的仍然是key值.如下图示: ...

  5. Java HashMap涉及的数据结构及实现

    为什么80%的码农都做不了架构师?>>>    提供的功能 基于哈希表实现的Map; 非线程安全的Map实现: 键和值都可以为null(因为有处理null的情形): 基本操作get( ...

  6. HashMap、Hashtable、HashSet和ConcurrentHashMap掐死版本

    1.HashMap 1).HashMap 是基于哈希表的 Map 接口的非同步实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键. 2).HashMap 底层就是一个数组结构 ...

  7. python面试 hashmap是什么_Java HashMap与Hashtable的区别是什么?

    成为入门级的认证专业,最常被问到的面试问题之一是关于Java HashMap和Hashtable.因此,您必须完全准备好回答任何与HashMap或Hashtable相关的问题.Java利用HashMa ...

  8. java hashmap用法_备战金九银十:Java核心技术面试题100+,助你搞定面试官

    一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...

  9. 聊聊传说中的散列哈希Hash算法,以及Java中的HashTable,HashMap,HashSet,ConcurrentHashMap......

    建议本文结合java源码来阅读,看了之后就什么都懂了,还有参考文献. 散列(Hash) 是一种按关键字编址的存储和检索方法 散列表(HashTable)根据元素的关键字确定元素的位置 散列函数(Has ...

最新文章

  1. MATLAB加入螺旋相位板调制,连续型螺旋相位板设计方法与流程
  2. java comparable排序_Java使用Comparable解决排序问题
  3. Nginx Keepalived安装部署完整步骤
  4. Pdshell教程-利用现有数据库(没有PDM情况下)导出数据库PMD文件
  5. jquery validate使用总结
  6. 关于队列(数组队列,链表队列,循环队列)
  7. iOS 块的简单理解
  8. vue中书写JSX一些坑-特殊属性名
  9. kettle 下载安装 使用
  10. 2021年CKA考试真题(二)
  11. 【CSS 书写模式 (Writing modes )】
  12. 从来不敷面膜的人_女人一旦过了40岁,敷面膜要记住“3不要”,否则还不如不敷!...
  13. 智能汽车操作系统行业研究及十四五规划分析报告
  14. FPGA基础资源之IOB的应用
  15. 比特大陆面临破产,吴忌寒:兄弟,把你简历寄过来
  16. 关于python中的复数、下列说法正确的是_关于Python中的复数,下列说法正确的是?...
  17. 基于区块链的供应链金融
  18. 聚华祥科技:类目排名要怎么进行优化
  19. vs2012安装失败
  20. 5G NAS (SA) 基础知识

热门文章

  1. 云+X案例展 | 民生类: “中企通信 × TutorABC”共创全球数字教育科技新里程
  2. 云现场 | 为什么说边缘计算是5G时代的必备品?
  3. 工作量不断增加的微软Azure,正缩小与亚马逊AWS的差距
  4. 开发怼产品,天经地义?大惊小怪?
  5. php视图查询的优势,ThinkPHP视图查询详解
  6. 在生产环境中使用 Sentinel
  7. flowable 动态多实例
  8. linux环境下redis5.0的安装配置
  9. 天气模式_北方降雪骤减!南方开启湿冷模式多阴雨!|天气展望
  10. 3. 什么是icmp?icmp与ip的关系_月入3万的大龄剩女相亲被拒:如果余生是你,晚一点有什么关系...