2-1-HashMap的特性

本文深入解析HashMap的底层实现原理,包括其数据结构特点、与HashTable的区别,以及在JDK8后的优化改进。探讨HashMap如何通过哈希表结构确保键的唯一性,并分析其在统计商品出现次数等场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HashMap的特性
1.考察目标
  • HashMap底层的数据结构
  • HashMap和HashTable的区别
2.题目分析
  • Map集合的特点
    • Map是一个双列集合,将键映射到值的对象
    • Map集合的数据结构,只针对键有效,跟值没有关系
    • 一个映射不能包含重复的键,每个键最多只能影射到一个值
  • HashMap集合的数据结构是什么?
    • 哈希表结构:数组+链表
      • 通过哈希表结构配合对象的hashCode和equals方法就可以保证键的唯一性
      • 建议:今后键的位置如果存储的是自定义类型,不要忘记重写hashCode与equals方法
  • HashMap与HashTable的区别是?
    • HashMap是jdk1.2版本版本出现的,允许存储null键与null值
      • 不同步(线程不安全):效率高
    • HashTable是jdk1.0版本出现的,不允许出现null键与null值
      • 同步(线程安全的):效率低
3.问题扩展

  • jdk8版本之后,在哈希表结构中引入了二叉树
    • 问题:二叉树的出现有什么好处?
      • 提高了查询效率
4.应用场景

  • 统计商品出现的次数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值