A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不问沧笙 初级黑马   /  2019-9-26 15:25  /  744 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 考察目标
a. HashMap的底层数据结构;
i. map集合当中,键是唯一的
1. 问题:键是怎么做到唯一性的呢?
a. 学习HashMap中的数据结构;
i. 哈希表结构:数组+链表
ii. 建议:今后键的位置存储的是自定义类型,不要忘记重写hashcode和equals方法
b. 答案:
i. 需要依赖于键类型中的方法   hashcode和equals两个方法的配合使用
ii. 当我们调用添加方法向集合中添加元素的时候,首先会调用hashcode方法计算出一个哈希值,然后拿着哈希值去集合中对比有没有相同
1. 没有,直接存储
2. 有,调用equals方法逐个比较元素中的内容
2. 细节:存取的顺序不能保证;
b. HashMap与HashTable的区别;
i. HashMap
1. 允许存储null键和null值;
2. 不同步(线程不安全),效率高;
ii. HashTable
1. 不能存储null键和null值;
2. 同步(线程安全),效率低;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马