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

试图将我的头包裹在哈希图上并获取代码的问题

试图将我的头包裹在哈希图上并获取代码的问题

子衿沉夜 2022-09-14 16:52:44
因此,我很难试图解决这个编码问题:他们希望我回答以下四个问题:“getValue(...)”将使用以下输入执行多少次,结果是什么?(1) 获取值(“foo”, 0);(2) 获取值(“柱”,2);(3) 获取值(“巴兹”,0);(4) 获取值(“富巴”, 1);我知道前两个答案:1) 将执行一次并返回 1 次2)将执行1次并返回3但是最后两个问题(3,4)我不明白。任何人都可以帮助澄清这段代码到底在做什么,并提示答案是什么?代码如下:import java.util.HashMap;import java.util.Map;public class myClass {private Map<String,Integer> map;public myClass() {map = new HashMap<>();map.put("foo", 1);map.put("bar", 3);}public int getValue(String input, int numRetries) throws Exception {try {  return map.get(input);}catch (Exception e) {  if (numRetries > 3) {    throw e;  }  return getValue(input, numRetries + 1);}}提前感谢您。
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您在(1)和(2)中正确回答的代码尝试从HashMap中获取值,因为它的键。

getValue() 函数是一个递归函数,这意味着它根据“重试次数”值多次调用自己

(3)代码自称4次(其中numRetry从0,1,2,3开始,然后“>3”子句变为真并引发异常)

(4) 代码调用自身 3 次(其中 numRequiries 从 1,2,3 进展,然后 '>3' 子句变为 true 并引发异常)


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信