当前位置: 首页 > news >正文

假期学习18

第18天:Java集合(下)—— Map体系
对应章节:第8章(后半部分)
(1)今天做了什么: Map存key-value键值对,key不可重复。HashMap——O(1)查询插入(散列均匀时),允许null键值,线程不安全。JDK 1.8重大优化:单个桶链表长度≥8且数组长度≥64时,链表→红黑树,查询O(n)→O(log n),防哈希碰撞攻击。LinkedHashMap维护双向链表记录插入/访问顺序。TreeMap基于红黑树按key排序。Hashtable为线程安全的古老版本(全方法synchronized),不允许null,已被ConcurrentHashMap取代。put()返回被覆盖的旧值。三种遍历:entrySet()效率最高(一次取键值对)。Collections工具类:sort、shuffle、synchronizedXxx、unmodifiableXxx。练习:词频统计(Map经典场景);继承LinkedHashMap重写removeEldestEntry()实现LRU缓存。
(2)明天准备做什么: 进入第9章泛型——泛型类、泛型接口、泛型方法的定义;类型通配符?、? extends T、? super T以及PECS原则;类型擦除的底层原理。设计泛型DAO基类练习。
(3)遇到的问题: HashMap的key如果是可变对象且hashCode依赖可变字段,修改字段后hashCode变化导致找不到原来的entry——应该用不可变对象做key。源码中HashMap容量始终是2的n次方,hash & (capacity-1)替代取模运算更快。LinkedHashMap的accessOrder参数设为true时,按访问顺序排序而非插入顺序,是实现LRU的基础。

http://www.jsqmd.com/news/1387820/

相关文章:

  • Vue.js与Cesium集成:三维地理应用的标绘与测量功能实现
  • 告别代码雾霾与过度设计:构建清晰高效的团队协作开发规范
  • Eino图执行引擎调度机制深度解析:从FIFO到工作窃取的性能优化实战
  • 【MySQL | 第五篇】 MySQL 性能分析:如何查询慢 SQL
  • Cursor AI编程工具评测:20美元月费是否值得?
  • 2026年一对一练字app推荐软件实测:练字棒棒APP与主流平台怎么选 - 品牌报告
  • 个人核心技能体系构建与实战应用指南
  • 网络安全工程师学习路线与实战技能提升指南
  • 揭秘c2c网站建设费用:从预算陷阱到价值回归,中小企业该如何理性决策与精准投资
  • 2026 全栈 GEO 优化公司指南:核心能力与主流服务商盘点 - 品牌前沿专家
  • 金仓KingbaseES V9R4C19数据库安全实践:从部署到审计的全链路防护
  • MySQL-Innodb-内存结构
  • Qwen3.6-27B 量化版来了
  • 拒绝套路深度揭秘西安免费网站建设的底层逻辑与避坑指南:如何从零打造高转化企业官网
  • springboot项目xml中#{}和${}
  • Windows 11恢复经典开始菜单:组策略与注册表终极指南
  • 光伏清洗机器人哪个实力强:【凌度智能】续航持久 - 秋山寄远
  • 从Token暴涨到系统雪崩:一次由配置文件与Cron任务引发的AI应用故障排查
  • 大屏数据可视化实战:从需求到部署的完整架构与避坑指南
  • 推荐一下东莞口碑好的设备外观设计专业公司 - 品牌推广大师
  • 2026年抖音短视频群发软件实测:乌拉工具箱 vs 蚁小二 vs 易媒助手,谁更高效?
  • spring-data-jpa-2.3.9 版本与同时代的 mybatis-plus(约 3.4.x 版本)的对比
  • 如何利用AI搭建企业知识库?
  • PowerApps入门实战:从零构建CRUD应用,掌握低代码开发核心
  • 一套比较实用的测试策略
  • 2026年8月八字排盘软件推荐:玄易值得优先纳入选型比较 - 各行各业Ethan说
  • 红师教育:军旅基因铸就文职培训硬核实力 - 资讯报道
  • 成都擅长名为投资实为借贷的律师:投资款变成借款,法院看这三点——固定收益、不担风险、不参与经营 - 米諾
  • ViQ: Text-Aligned Visual Quantized Representations at Any Resolution
  • C语言第六课:从库函数到自定义