奶尤糯米团子
2020-03-16 17:08
第一,想知道标注的第一处while判断的true是什么?应该不是student==null为true吧?
第二,标注的第二处,不是说map里面key值是不可重复的吗?不应该先remove原本key为stuID的entry对象再put一个新的吗?
while中true是指永远是true死循环,但是它的循环结束条件是break;如果判断没有对应学生会用continue继续循环,循环跟student为不为null无关。
HashMap保存数据的过程为:首先判断key是否为null,若为null,则直接调用putForNullKey方法。若不为空则先计算key的hash值,然后根据hash值搜索在table数组中的索引位置,如果table数组在该位置处有元素,则通过比较是否存在相同的key,若存在则覆盖原来key的value,否则将该元素保存在链头(最先保存的元素放在链尾)。
在这简单来说是value被覆盖了。
第一个问题 true为死循环
第二个问题 key不可以重复,但是它会对比值,会出现覆盖。
Java入门第三季
409792 学习 · 4340 问题
相似问题