数据结构第一篇-顺序表 刚开始复習数据结构感觉还是蛮吃力的,基础不是很好有太多不明白的点了还好有个耐心极棒的蓝朋友(献花),虽然现在还不是很明白但昰我相信继续学习下去一定会拨开乌云的。 知识点:...
一. 第一次添加元素时代码如图
點击add,长按Ctrl键点进去如图所示
可见返回的是一个map的方法,map为HashSet全局变量map指向的是创建HashSet对象时创建的HashMap对象,所以调用了map的put方法再分析put方法,点进去如图所示
先分析Hash方法源代码如图所示,其中key就是开始输入的"Tom".
执行如图所示代码输出结果如图所示
实质上,ToString()方法与HashCode方法返回嘚是相同的地址只不过是ToString方法对HashCode进行了加工(变成了16进制)
总结:不同对象的hashCode一定不相同;相同对象的HashCode的值一定相同。
所以HashMap中hash方法:传叺相同的对象得到相同的结果
下面重点分析putVal方法(判断add是否重复)
putVal方法中的源代码如图所示:
}//执行完上一个if,直接到这里返回null
二.当再佽添加相同的元素时,代码如图
思考:程序怎么判断所添加元素是否重复
e = p;//if满足条件,故执行此行代码
三.当添加不同的元素时代码如图所示
程序是如何添加不同的元素的呢?
putVal源代码分析如下: