亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖將我的頭包裹在哈希圖上并獲取代碼的問題

試圖將我的頭包裹在哈希圖上并獲取代碼的問題

子衿沉夜 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 關注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號