为了账号安全,请及时绑定邮箱和手机立即绑定

关于testModify()方法的问题

http://img1.sycdn.imooc.com//5e6f41950001a5fb12780864.jpg

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

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

正在回答

2 回答

  1. while中true是指永远是true死循环,但是它的循环结束条件是break;如果判断没有对应学生会用continue继续循环,循环跟student为不为null无关。 

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

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

0 回复 有任何疑惑可以回复我~
#1

奶尤糯米团子 提问者

好的谢谢
2020-03-18 回复 有任何疑惑可以回复我~
#2

奶尤糯米团子 提问者

想问一下table数组是什么呀?
2020-03-18 回复 有任何疑惑可以回复我~
#3

奶尤糯米团子 提问者

是不是同一个key的hash值是一样的呀?
2020-03-18 回复 有任何疑惑可以回复我~
#4

知何似 回复 奶尤糯米团子 提问者

https://www.cnblogs.com/wangxilei/p/9272508.html#autoid-3-0-0 可以看下这篇文章
2020-03-18 回复 有任何疑惑可以回复我~
#5

奶尤糯米团子 提问者 回复 知何似

ok谢谢
2020-03-18 回复 有任何疑惑可以回复我~
查看2条回复

第一个问题 true为死循环

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于testModify()方法的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信