关于testModify()方法的问题

来源:5-4 学生选课---修改 Map 中的学生

奶尤糯米团子

2020-03-16 17:08

http://img4.mukewang.com/5e6f41950001a5fb12780864.jpg

第一,想知道标注的第一处while判断的true是什么?应该不是student==null为true吧?

第二,标注的第二处,不是说map里面key值是不可重复的吗?不应该先remove原本key为stuID的entry对象再put一个新的吗?

写回答 关注

2回答

  • 知何似
    2020-03-17 12:39:09
    已采纳
    1. while中true是指永远是true死循环,但是它的循环结束条件是break;如果判断没有对应学生会用continue继续循环,循环跟student为不为null无关。 

    2. HashMap保存数据的过程为:首先判断key是否为null,若为null,则直接调用putForNullKey方法。若不为空则先计算key的hash值,然后根据hash值搜索在table数组中的索引位置,如果table数组在该位置处有元素,则通过比较是否存在相同的key,若存在则覆盖原来key的value,否则将该元素保存在链头(最先保存的元素放在链尾)。 

      在这简单来说是value被覆盖了。

    奶尤糯米团子 回复知何似

    ok谢谢

    2020-03-18 21:40:14

    共 5 条回复 >

  • 五八十三
    2021-06-01 12:54:29

    第一个问题 true为死循环

    第二个问题 key不可以重复,但是它会对比值,会出现覆盖。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409784 学习 · 4339 问题

查看课程

相似问题